Kommentarer
- terdon ' s svar nedenfor er utmerket, men du kan slippe semikolonene i den versjonen du ' har vist ovenfor, så vel som kommandoer utføres i rekkefølge i skriptet, hver på sin egen linje. Semikolonet er overflødig med mindre du legger alle kommandoene på en linje.
Svar
Ja, du er gjør det på riktig måte. Shell-skript kjører hver kommando sekvensielt og venter på at den første skal fullføres før den neste starter. Du kan enten bli med kommandoer med ;
eller ha dem på separate linjer :
command1; command2
eller
command1 command2
Det er ikke behov for ;
hvis kommandoene er på separate linjer. Du kan også velge å kjøre den andre kommandoen bare hvis den første avsluttet. For å gjøre det, bli med dem med &&
:
command1 && command2
eller
command1 && command2
For mer informasjon om de forskjellige kontrolloperatørene som er tilgjengelige for deg, se her .
Kommentarer
- Husk det i stedet for
&&
, OP kan ganske enkelt legge tilset -e
i begynnelsen av skriptet. Dette er selvfølgelig ikke en prosesskjedende operatør. - @didierc som vil føre til at skriptet avsluttes ved eventuelle feil, og vil også produsere mange unødvendige fremdriftsrapporter. Ikke det samme som å koble to spesifikke kommandoer til
&&
. - @polemon egentlig ikke, nei. Dette er et veldig enkelt spørsmål fra en nybegynnerbruker. Jeg ser ikke ' mye poeng i å legge for mange detaljer. Merk at jeg ikke ' ikke engang nevnte
||
. Jeg ser ikke ' t hvorforwait
er relevant her, det er absolutt ikke nødvendig for den enkle oppgaven å kjøre den ene kommandoen etter den andre. Det ville bare være behov for mer finkornet kontroll av prosesser. Send gjerne inn et svar selvfølgelig, men jeg ' vil heller holde meg enkel. - @terdon ville ikke ' t som er
set -v
ellerset -x
i stedet forset -e
? - @didierc se kommentaren min ovenfor, jeg tenkte på
set -x
, beklager.
Svar
I et repeterende tilfelle som dette anbefalte jeg å bruke en for loop .
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
Dette er en linjeversjon som passer for kommandolinjen, men kan også brukes i et skript. Bøylene rundt variabelnavnet er nødvendig når du legger inn en variabel i en streng uten hvitt mellomrom.
Sløyfen sender ikke bare forespørslene i rekkefølge, men er lettere å tilpasse og gjenbruke når det er nødvendig, uten så mange bekymringer om skrivefeil.