grep: All you need to know | #6 Practical Bash
Cuprins:
- Bash în timp ce Buclă
- Infinit în timp ce Buclă
- Citiți un fișier Line by Line
- Declarații de pauză și continuare
- Declarație de pauză
- Continuați declarația
- Concluzie
Buclele sunt unul dintre conceptele fundamentale ale limbajelor de programare. Buclele sunt utile atunci când doriți să rulați o serie de comenzi de mai multe ori până când o anumită condiție este îndeplinită.
Î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 buclelor în timp ce Bash, precum și declarațiile de pauză și continuare pentru a modifica fluxul unei bucle.
Bash în timp ce Buclă
Bucla while este utilizată pentru a efectua un set dat de comenzi de un număr necunoscut de ori, atâta timp cât condiția dată este evaluată la true.
Bucla Bash while are următoarea formă:
while do done
Starea este evaluată înainte de a executa comenzile. Dacă condiția se evaluează la adevărat, comenzile sunt executate. În caz contrar, dacă condiția se evaluează falsă, 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 variabilei
i
și crește variabila cu una.
i=0 while do echo Number: $i ((i++)) done
Bucla Tue iterează atât timp cât
i
este mai mică sau egală cu două. Va produce următoarea producție:
Infinit în timp ce Buclă
O buclă infinită este o buclă care se repetă la nesfârșit și nu se termină niciodată. Dacă starea se evaluează întotdeauna ca adevărat, obțineți o buclă infinită.
În următorul exemplu folosim comanda încorporată
:
care întoarce întotdeauna adevărat pentru a crea o buclă infinită. Puteți utiliza, de asemenea,
true
comandă încorporată sau orice altă declarație care întoarce întotdeauna adevărat.
În timp ce bucla de mai sus va rula la nesfârșit. Puteți încheia bucla apăsând
Iată un echivalent cu o singură linie: Una dintre cele mai frecvente utilizări ale buclei while este să citiți un fișier, un flux de date sau o linie variabilă linie cu linie. În următorul exemplu, bucla while va citi
În loc să controlăm bucla while cu o condiție, folosim redirecționarea de intrare (
Când citiți fișier linie cu linie, utilizați întotdeauna
În mod implicit, comisia de
Instrucțiunile de pauză și continuare pot fi utilizate pentru a controla execuția buclei în timp. Instrucțiunea de întrerupere încheie bucla curentă și trece controlul programului la comanda care urmează bucla terminată. De obicei este folosit pentru a încheia bucla atunci când este îndeplinită o anumită condiție. În exemplul următor, execuția buclei va fi întreruptă odată ce elementul iterat curent este egal cu
Instrucțiunea continuare iese din iterația curentă a unei bucle și trece controlul programului la următoarea iterație a buclei. În cele ce urmează, odată ce elementul iterat curent este egal cu
Până acum, ar trebui să înțelegeți bine modul de utilizare a bazhului în buclă.
while: do echo "Press to exit." sleep 1 done
while: do echo "Press to exit." sleep 1 done
CTRL+C
while:; do echo 'Press to exit.'; sleep 1; done
while:; do echo 'Press to exit.'; sleep 1; done
Citiți un fișier Line by Line
/etc/passwd
linie rând cu rând și va imprima fiecare linie.
file=/etc/passwd while read -r line; do echo $line done < "$file"
< "$file"
) pentru a trece un fișier la
read
care este comanda care controlează bucla. Bucla de timp va rula până când se citește ultima linie.
read
cu opțiunea
-r
pentru a împiedica reactivarea să funcționeze ca un caracter de evadare.
read
nuanțează caracterele din spațiul principal (spate și file). Utilizați opțiunea
IFS=
înainte de comanda
read
pentru a preveni acest comportament
file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"
Declarații de pauză și continuare
Declarație de pauză
2
.
i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'
Continuați declarația
2
, instrucțiunea continuare va determina executarea să revină la începutul buclei și să continue cu iterația următoare.
i=0 while do ((i++)) if]; then continue fi echo "Number: $i" done echo 'All Done!'
Number: 1 Number: 3 Number: 4 Number: 5 All Done!
Concluzie
Setul cu căști Bluetooth Motorola H790 <80> (sau mai puțin) este un preț excelent pentru acest headset Motorola H790, care oferă cea mai mare parte a calității de telefon. > Ușor, confortabil și discret: Așa aș descrie potrivirea modelului Motorola H790. Această setare cu cască Bluetooth atrăgătoare (80 $ din 8/6/09) oferă o buclă de plastic peste ureche. Deoarece bucla nu are flexibilitatea de a curba în jurul urechii, ea rămâne în forma sa fixă. Desigur, bucla pare chintită, dar, spre surprind
Urechea sa simțit bine în canalul urechii mele; Oamenii cu urechi mai mari pot încerca sortimentul de șuruburi pentru înlocuire pentru a obține o potrivire mai bună. H790 abia mi-a atins obrazul, dar a rămas fixat la ureche când m-am îndreptat și mi-am mutat capul în toate direcțiile.
Bash pentru buclă
Există 3 construcții de buclă de bază în scripturile Bash, pentru buclă, loop, și până la buclă. În acest tutorial, vom acoperi elementele de bază pentru bucle în Bash, precum și declarațiile de pauză și continuare pentru a modifica fluxul unei bucle.
Bash până la buclă
În limbaje de script cum ar fi Bash, buclele sunt utile pentru automatizarea sarcinilor repetitive. Acest tutorial explică elementele de bază ale buclei până în Bash. 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.







