¿Cómo puedo abrir múltiples URL en una nueva ventana de Chrome desde el terminal?

1

Puedo abrir varias URL en la ventana de Chrome actual desde el terminal:

open https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/

Cuando intenté abrirlos en una nueva ventana usando

open -n https://www.apple.com/ https://www.apple.com/ https://www.amazon.com/

Chrome responde con solo una ventana nueva en blanco.

¿Cómo puedo abrir todas las URL en una nueva ventana?

    
pregunta JawSaw 23.11.2017 - 05:23

1 respuesta

0

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/
    
respondido por el Synoli 23.11.2017 - 10:09

Lea otras preguntas en las etiquetas