Komentáře
- terdon ' níže odpověď je vynikající, ale můžete uvést středníky ve verzi, kterou jste ' zobrazili výše, stejně jako příkazy jsou prováděny v pořadí ve skriptu, každý na svém vlastním řádku. Středník je nadbytečný, pokud nedáte všechny příkazy na jeden řádek.
Odpověď
Ano, jste znovu dělá to správným způsobem. Shell skripty spustí každý příkaz postupně a čekají na dokončení prvního před spuštěním dalšího. Příkazy můžete spojit pomocí ;
nebo je nechat na samostatných řádcích :
command1; command2
nebo
command1 command2
Není potřeba ;
pokud jsou příkazy na samostatných řádcích. Můžete také zvolit spuštění druhého příkazu, pouze pokud byl první úspěšně ukončen. Chcete-li tak učinit, spojte je pomocí &&
:
command1 && command2
nebo
command1 && command2
Další informace o různých kontrolních operátorech dostupných pro vidíte zde .
Komentáře
- Připomeňte si, že místo
&&
, OP by mohl jednoduše přidatset -e
na začátku skriptu. Samozřejmě to není operátor řetězení procesů. - @didierc, který způsobí ukončení skriptu při jakékoli chybě, a také vytvoří spoustu zbytečných zpráv o postupu. To není totéž jako propojení dvou konkrétních příkazů s
&&
. - @polemon ne tak docela, ne. Toto je velmi jednoduchá otázka pro začínajícího uživatele. Nevidím ' přidávání příliš mnoha podrobností příliš smysl. Všimněte si, že jsem ' ani nezmínil
||
. Nechci ' opravdu pochopit, proč jewait
zde relevantní, rozhodně to není nutné pro jednoduchý úkol spouštění jednoho příkazu za druhým. Bylo by to zapotřebí pouze pro jemnější kontrolu procesů. Samozřejmě můžete odeslat odpověď, ale já ' si raději nechám jednoduchost. - @terdon by ' t
set -v
neboset -x
spíše nežset -e
? - @didierc viz můj komentář výše, myslel jsem na
set -x
, promiň.
odpověď
V opakujících se případech, jako je tento, jsem doporučil použít smyčku for .
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
Toto je jednořádková verze vhodná pro příkazový řádek, ale lze ji použít i ve skriptu. Závorky kolem názvu proměnné jsou potřebné při vkládání proměnné do řetězce bez mezer.
Smyčka nejenže posílá požadavky v pořadí, ale je také snazší ji vyladit a znovu použít, když je potřeba, aniž by bylo nutné se tolik starat o překlepy.