La solución perezosa
Use AppleScript para crear la nueva ventana, luego use open
sin el -n
:
osascript -e 'tell app id "com.google.chrome" to make new window' \
&& open https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/
Tan pronto como se abra la ventana, es probable que Chrome la use para todas las URL.
Sin embargo, esa solución es propensa a condiciones de carrera, especialmente si se crea o activa otra ventana mientras se ejecuta su comando. 1
[1] En la práctica, hay varios escenarios donde esto puede suceder, e. sol. si ejecuta su comando en paralelo, o si Chrome intenta recuperar sus ventanas después de una falla, o cuando el usuario (u otro programa) intenta abrir una nueva ventana, etc.
La solución más robusta
Una alternativa más robusta, que no tiene la condición de carrera mencionada anteriormente, es la siguiente solución totalmente AppleScript:
#!/usr/bin/osascript
on run(theUrls)
tell app id "com.google.chrome" to tell make new window
repeat with theUrl in theUrls
set newTab to make new tab with properties { url: theUrl }
end repeat
tell tab 1 to close
end tell
end run
Guarde ese código, preferiblemente como un archivo sin extensión (por ejemplo, open_new_window
). Coloque ese archivo en algún lugar de su PATH
. Asegúrate de que chmod 755
el script para que sea ejecutable. Por si acaso, recomendaría también sudo chmod root:wheel
it.
De ahora en adelante, puede invocar el script así:
open_new_window https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/
En caso de que no desee utilizar un script por separado
Use la siguiente variante para la prueba, o si prefiere una línea de comandos sin una secuencia de comandos separada:
osascript \
-e 'on run(theUrls)' \
-e ' tell app id "com.google.chrome" to tell make new window' \
-e ' repeat with theUrl in theUrls' \
-e ' set newTab to make new tab ¬' \
-e ' with properties { url: theUrl }' \
-e ' end repeat' \
-e ' tell tab 1 to close' \
-e ' end tell' \
-e 'end run' \
https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/