Android

Bash până la buclă

Bash vs Python для DevOps инженеров и системных администраторов

Bash vs Python для DevOps инженеров и системных администраторов

Cuprins:

Anonim

Buclele sunt unul dintre conceptele fundamentale ale limbajelor de programare. Buclele sunt la îndemână atunci când doriți să rulați o serie de comenzi de mai multe ori până când este îndeplinită o anumită condiție.

În limbaje de script cum ar fi Bash, buclele sunt utile pentru automatizarea sarcinilor repetitive. Există 3 construcții de buclă de bază în scripturile Bash, pentru buclă, loop, și până la buclă.

Acest tutorial explică elementele de bază ale buclei până în Bash.

Bash până la Buclă

Bucla până este folosită pentru a executa un set dat de comenzi, atât timp cât condiția dată este evaluată la fals.

Bash până la bucla are următoarea formă:

until do done

Starea este evaluată înainte de a executa comenzile. Dacă condiția se evaluează ca falsă, comenzile sunt executate. În caz contrar, dacă starea se evaluează adevărată, bucla va fi încheiată și controlul programului va fi trecut la comanda care urmează.

În exemplul de mai jos, pe fiecare iterație, bucla tipărește valoarea curentă a counter variabile și crește variabila cu una.

#!/bin/bash counter=0 until do echo Counter: $counter ((counter++)) done

Bucla se iterează atât timp cât variabila counter are o valoare mai mare de patru. Scriptul va produce următoarea ieșire:

Counter: 0 Counter: 1 Counter: 2 Counter: 3 Counter: 4 Counter: 5

Bash până la exemplu de buclă

Scriptul următor poate fi util dacă gazda dvs. git are perioade de oprire și în loc să tastați manual git pull mai multe ori până când gazda este online, puteți rula scriptul o singură dată. Va încerca să tragă depozitul până când este tras cu succes.

#!/bin/bash until git pull &> /dev/null do echo "Waiting for the git host…" sleep 1 done echo -e "\nThe git repository is pulled."

Scenariul va tipări „În așteptarea gazdei git…” și va dormi o secundă până când gazda git va intra online. Odată ce depozitul este tras, acesta va imprima „Depozitul git este tras."

Waiting for the git host… Waiting for the git host… Waiting for the git host… The git repository is pulled.

Concluzie

Câștigurile while și until sunt similare între ele, cu diferența principală fiind faptul că bucla de while iterează atât timp cât condiția se evaluează la true iar bucla until iterează atât timp cât condiția se evaluează la false .

terminal de buclă bash