Abra múltiples urls desde la Terminal

3

Puedo abrir una ventana de Chrome a través de

open https://en.wikipedia.org/wiki/Main_Page

También puedo abrir múltiples URL por varias líneas

open https://www.youtube.com/
open https://en.wikipedia.org/wiki/Main_Page

Sin embargo, lo siguiente no funcionará

open https://www.youtube.com/ && https://en.wikipedia.org/wiki/Main_Page

pero funciona con

open https://www.youtube.com/ && open https://en.wikipedia.org/wiki/Main_Page

Quiero una expresión elegante en línea como

open ('https://www.youtube.com/','https://en.wikipedia.org/wiki/Main_Page')

¿Cómo hacer eso?

    
pregunta JawSaw 20.11.2017 - 01:20

2 respuestas

1

Suponiendo que está utilizando el shell bash predeterminado:

for fff in $(echo https://one.com/whatever http://two.com/something%20else )
do
    open $fff
done

No necesariamente necesitas el $ (echo a b c) y solo puedes pegar las palabras. También puede omitir las múltiples líneas con dos puntos y coma cuando sea necesario para dividir el bucle :

for fff in a b c; do echo $fff; done
    
respondido por el bmike 20.11.2017 - 01:31
3

Simplemente proporcione todas las URL que desea abrir como argumentos a un solo comando open :

open https://www.youtube.com/ https://en.wikipedia.org/wiki/Main_Page

El comando open se ha escrito para manejar esto.

La razón por la que no funciona con && es que en la sintaxis de shell, && es un delimitador entre diferentes comandos, no entre argumentos para el mismo comando. Así que estaba intentando ejecutar https://en.wikipedia.org/wiki/Main_Page como un comando separado, que no funciona.

Más específicamente, && ejecuta el segundo comando solo si el primer comando tiene éxito. Hay una serie de delimitadores de comandos que puede utilizar con diferentes significados:

cmd1 ; cmd2    # Runs cmd1 and then cmd2 (just as though they were on different lines)
cmd1 & cmd2    # Runs cmd1 and cmd2 simultaneously, with cmd1 in the background
cmd1 | cmd2    # Runs cmd1 and cmd2 simultaneously, with cmd1's output piped to cmd2's input
cmd1 && cmd2    # Runs cmd1, and then if it succeeds runs cmd2
cmd1 || cmd2    # Runs cmd1, and then if it fails runs cmd2
    
respondido por el Gordon Davisson 20.11.2017 - 02:52

Lea otras preguntas en las etiquetas