Kommentarer
- terdon ' s svar nedan är utmärkt men du kan släppa semikolonerna i den version du ' har visat ovan samt kommandon utförs i ordning i skriptet, var och en på sin egen rad. Semikolonet är överflödigt om du inte lägger alla kommandon på en rad.
Svar
Ja, du är gör det på rätt sätt. Shell-skript kör varje kommando i följd och väntar på att det första ska slutföras innan nästa startar. Du kan antingen gå med i kommandon med ;
eller ha dem på separata rader :
command1; command2
eller
command1 command2
Det finns inget behov av ;
om kommandona är på separata rader. Du kan också välja att köra det andra kommandot endast om det första avslutades framgångsrikt. För att göra det, gå med dem med &&
:
command1 && command2
eller
command1 && command2
För mer information om de olika kontrolloperatörer som finns tillgängliga för du, se här .
Kommentarer
- Kom ihåg det istället för
&&
, OP kunde helt enkelt lägga tillset -e
i början av skriptet. Naturligtvis är detta inte en processkedjande operatör. - @didierc som får skriptet att avslutas vid eventuella fel och kommer också att producera massor av onödiga framstegsrapporter. Inte samma som att länka två specifika kommandon till
&&
. - @polemon egentligen inte, nej. Det här är en mycket enkel fråga från en nybörjare. Jag ser inte ' mycket för att lägga till för mycket detaljer. Observera att jag inte ' inte ens nämnde
||
. Jag förstår inte ' varförwait
är relevant här, det behövs verkligen inte för den enkla uppgiften att köra det ena kommandot efter det andra. Det skulle bara behövas för mer finkornig kontroll av processer. Skicka självklart ett svar, men jag ' vill hellre hålla mig enkel. - @terdon skulle inte ' t som är
set -v
ellerset -x
snarare änset -e
? - @didierc se min kommentar ovan, jag tänkte på
set -x
, förlåt.
Svar
I ett repetitivt fall som detta rekommenderade jag att använda en for loop .
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
Detta är en enradig version som är lämplig för kommandoraden men kan också användas i ett skript. Hängslen runt variabelnamnet behövs när man bäddar in en variabel i en sträng utan tomt utrymme.
Slingan skickar inte bara förfrågningarna i ordning utan är lättare att justera och återanvända vid behov utan lika många bekymmer om skrivfel.