Bash – miten komento suoritetaan edellisen päättymisen jälkeen? [kaksoiskappale]

Tähän kysymykseen on jo annettu vastauksia :

Kommentit

  • terdon ' alla oleva vastaus on erinomainen, mutta voit pudottaa puolipisteet kaksoispisteeseen versiossa, jonka olet ' esittänyt, samoin kuin komennot suoritetaan komentosarjassa järjestyksessä, kukin omalla rivillään. Puolipiste on turha, ellet aseta kaikkia komentoja yhdelle riville.

Vastaa

Kyllä, olet ”uudelleen” oikein tekemällä. Shell-komentosarjat suorittavat jokaisen komennon peräkkäin, odottaen ensimmäisen suorittamista loppuun ennen seuraavan aloittamista. Voit joko liittää komennot ;: lla tai pitää ne erillisillä riveillä :

command1; command2 

tai

command1 command2 

jos komennot ovat erillisillä riveillä. Voit myös valita toisen komennon suorittamisen vain, jos ensimmäinen poistui onnistuneesti. Voit tehdä sen liittämällä ne && :

command1 && command2 

tai

command1 && command2 

Lisätietoja käytettävissä olevista eri ohjausoperaattoreista sinä, katso täällä .

Kommentit

  • Muista, että &&, OP voisi yksinkertaisesti lisätä set -e komentosarjan alussa. Tämä ei tietenkään ole prosessiketjuoperaattori.
  • @didierc, joka saa komentosarjan poistumaan kaikista virheistä ja tuottaa myös runsaasti tarpeettomia edistymisraportteja. Ei sama kuin kahden erityisen komennon linkittäminen && -palveluun.
  • @polemon ei oikeastaan, ei. Tämä on aloittelevan käyttäjän hyvin yksinkertainen kysymys. En näe ' paljon syytä lisätä liikaa yksityiskohtia. Huomaa, että en ' edes maininnut ||. En ymmärrä ' oikeastaan, miksi wait on tässä merkitystä, sitä ei todellakaan tarvita yksinkertaiseen tehtävään suorittaa komentoja toisensa jälkeen. Sitä tarvitaan vain prosessien hienorakeisempaan hallintaan. Voit lähettää tietysti vastauksen, mutta ' pidän mieluummin yksinkertaista.
  • @terdon ei ' t, jotka ovat set -v tai set -x kuin set -e?
  • @didierc katso kommenttini yllä, ajattelin set -x, anteeksi.

Vastaa

Tällaisessa toistuvassa tapauksessa suosittelin for loop -toiminnon käyttöä.

 for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done  

Tämä on yksirivinen versio, joka sopii komentoriville, mutta sitä voidaan käyttää myös komentosarjassa. Muuttujan nimen ympärillä olevia aaltosulkeita tarvitaan, kun upotetaan muuttuja merkkijonoon ilman välilyöntiä.

Silmukka ei vain lähetä pyyntöjä järjestyksessä, vaan sitä on myös helpompi säätää ja käyttää tarvittaessa uudelleen ilman, että niin paljon huolta tulee kirjoitusvirheet.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *