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ář.