Commenti
- terdon ' s risposta di seguito è eccellente ma puoi eliminare i punti e virgola nella versione ' mostrata sopra così come i comandi vengono eseguiti in ordine nello script, ciascuno sulla propria riga. Il punto e virgola è ridondante a meno che tu non metta tutti i comandi su una riga.
Risposta
Sì, sei farlo nel modo giusto. Gli script della shell eseguiranno ogni comando in sequenza, aspettando che il primo finisca prima che inizi il successivo. Puoi unire i comandi con ;
o averli su righe separate :
command1; command2
o
command1 command2
Non è necessario ;
se i comandi sono su righe separate. Puoi anche scegliere di eseguire il secondo comando solo se il primo è uscito correttamente. Per farlo, uniscili con &&
:
command1 && command2
o
command1 && command2
Per ulteriori informazioni sui vari operatori di controllo disponibili per vedi qui .
Commenti
- Ricorda che invece di
&&
, OP potrebbe semplicemente aggiungereset -e
allinizio dello script. Ovviamente, questo non è un operatore di concatenamento dei processi. - @didierc che farà terminare lo script in caso di errore e produrrà anche un sacco di rapporti sui progressi inutili. Non è la stessa cosa che collegare due comandi specifici con
&&
. - @polemon non proprio, no. Questa è una domanda molto semplice da parte di un utente inesperto. Non ' non vedo molto utile aggiungere troppi dettagli. Tieni presente che ' non ho nemmeno menzionato
||
. Non ' non vedo davvero perchéwait
sia rilevante qui, non è certamente necessario per il semplice compito di eseguire un comando dopo laltro. Sarebbe necessario solo per un controllo più dettagliato dei processi. Sentiti libero di inviare una risposta, naturalmente, ma ' preferisco mantenere la mia semplice. - @terdon non ' che sia
set -v
oset -x
anzichéset -e
? - @didierc vedi il mio commento sopra, stavo pensando a
set -x
, scusa.
Risposta
In un caso ripetitivo come questo ho consigliato di utilizzare un ciclo for .
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
Questa è una versione di una riga adatta per la riga di comando ma può essere utilizzata anche in uno script. Le parentesi graffe intorno al nome della variabile sono necessarie quando si incorpora una variabile in una stringa senza spazi.
Il ciclo non solo invia le richieste in ordine, ma è più facile da modificare e riutilizzare quando necessario, senza tante preoccupazioni errori di battitura.