
Smyčky jsou jedním ze základních pojmů programovacích jazyků. Smyčky jsou užitečné, když chcete spouštět řadu příkazů znovu a znovu, dokud není splněna určitá podmínka.
Ve skriptovacích jazycích, jako je Bash, jsou smyčky užitečné pro automatizaci opakujících se úloh. Ve skriptování Bash existují 3 základní smyčkové konstrukce, for
smyčka, while
smyčka a until
smyčka.
Tento tutoriál vysvětluje základy until
smyčka v Bash.
Bash until
Smyčka #
until
smyčka se používá k provedení dané sady příkazů, pokud je daná podmínka vyhodnocena jako nepravda.
Bash until
smyčka má následující tvar:
until [CONDITION]
do
[COMMANDS]
done
Podmínka je vyhodnocena před provedením příkazů. Pokud se podmínka vyhodnotí jako nepravda, příkazy se provedou. V opačném případě, pokud se podmínka vyhodnotí jako pravdivá, bude smyčka ukončena a řízení programu bude předáno příkazu, který následuje.
V níže uvedeném příkladu smyčka při každé iteraci vypíše aktuální hodnotu proměnné counter
a zvýší proměnnou o jednu.
#!/bin/bash
counter=0
until [ $counter -gt 5 ]
do
echo Counter: $counter
((counter++))
done
Smyčka se opakuje tak dlouho jako counter
proměnná má hodnotu větší než čtyři. Skript vytvoří následující výstup:
Counter: 0
Counter: 1
Counter: 2
Counter: 3
Counter: 4
Counter: 5
Použijte break
a continue
příkazy pro řízení provádění smyčky.
Bash until
Příklad smyčky #
Následující skript může být užitečný, když má váš hostitel git výpadek a místo ručního zadávání git pull
několikrát, dokud nebude hostitel online, můžete skript spustit jednou. Pokusí se stáhnout úložiště, dokud to nebude úspěšné.
#!/bin/bash
until git pull &> /dev/null
do
echo "Waiting for the git host ..."
sleep 1
done
echo -e "\nThe git repository is pulled."
Skript vypíše „Čekání na hostitele git…“ a sleep
po dobu jedné sekundy, dokud hostitel git nepřejde online. Jakmile je úložiště vytaženo, vypíše „Repozitář git je vytažen.“
Waiting for the git host ...
Waiting for the git host ...
Waiting for the git host ...
The git repository is pulled.
Závěr č.
while
a until
smyčky jsou si navzájem podobné. Hlavní rozdíl je v tom, že while
smyčka se opakuje, dokud se podmínka vyhodnotí jako true
a until
smyčka se opakuje, dokud je podmínka vyhodnocena jako false
.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.