La soluzione pigra
Usa AppleScript per creare la nuova finestra, quindi usa open
senza -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/
Non appena la finestra è aperta, è probabile che Chrome lo utilizzi per tutti gli URL.
Tuttavia, questa soluzione è incline alle condizioni di gara, , soprattutto se viene creata o attivata un'altra finestra mentre il comando è in esecuzione. 1
[1] In pratica, ci sono diversi scenari in cui ciò può accadere, e. g. se esegui il comando in parallelo o se Chrome tenta di ripristinare le finestre dopo un arresto anomalo o quando l'utente (o un altro programma) tenta di aprire una nuova finestra, ecc.
La soluzione più robusta
Un'alternativa più robusta, che non ha la condizione di competizione di cui sopra, è la seguente soluzione 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
Salva quel codice, preferibilmente come un file senza estensione (per esempio open_new_window
). Metti quel file da qualche parte nel tuo PATH
. Assicurati di chmod 755
lo script in modo che sia eseguibile. Per buona misura, consiglierei anche a sudo chmod root:wheel
it.
Da ora in poi, puoi richiamare lo script in questo modo:
open_new_window https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/
Nel caso in cui non desideri utilizzare uno script separato
Utilizza la seguente variante per il test o se preferisci una riga di comando senza uno script separato:
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/