Apri più url dal Terminale

3

Posso aprire una finestra chrome attraverso

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

Posso anche aprire più URL per più righe

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

Quanto segue non funzionerà però

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

ma funziona con

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

Voglio un'espressione inline elegante come

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

Come si fa?

    
posta JawSaw 20.11.2017 - 01:20
fonte

2 risposte

1

Supponendo che tu stia utilizzando la shell bash predefinita:

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

Non hai necessariamente bisogno del $ (echo a b c) e potresti semplicemente incollare le parole. Puoi anche saltare le linee multiple con due punti e virgola dove necessario per dividere il ciclo per :

for fff in a b c; do echo $fff; done
    
risposta data 20.11.2017 - 01:31
fonte
3

Fornisci tutti gli URL che desideri aprire come argomenti per un singolo comando open :

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

Il comando open è stato scritto per gestire questo.

Il motivo per cui non funziona con && è che nella sintassi della shell, && è un delimitatore tra diversi comandi, non tra argomenti allo stesso comando. Quindi stava cercando di eseguire https://en.wikipedia.org/wiki/Main_Page come comando separato, che non funziona.

Più specificamente, && esegue il secondo comando solo se il primo comando ha esito positivo. Esistono numerosi delimitatori di comandi che è possibile utilizzare con significati diversi:

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
    
risposta data 20.11.2017 - 02:52
fonte

Leggi altre domande sui tag