Cumu scritta Bash MÈ-Bucles

Mandati, Sintaxina è Esempii

Pudete esse realizatu una sequenza di cumandamenti scrive in un scrittore schedariu è poi a curriva.

Un schedariu di scrittura hè solu un testu di u testu, in solitu cù l'estensione di u .SH, chì cuntene una sezione d'indicazione chì anu ancu esse esercitu da a linea di cummanda ( cunchju ).

Quandu Esempi Loop

Ci hè un esempiu di un pocu tempu. Quandu si sia ghjucatu, stu schedariu di scrittori stampate i numeri 1 à 9 nantu à a schermu. L'intrattenimentu quandu dà più flexibilità per spiegà a cundizione di terminazione quantu u ciclu .

#! / bin / bash count = 1 mentre chì [$ count -le 9] fate echo "$ count" sleep 1 ((count ++)) done

Per esempiu, pudete fà u script previ in ​​un loice infinitu omancendu l'indicazione d'incrementu "((count ++)):"

#! / bin / bash count = 1 [$ count -le 9] fate echo "$ count" sleep 1 done

A parazione "sleep 1" pausa l'esercitu per 1 secondatu nantu à ogni iterazione. Aduprà a cresia di u tecktronicu Ctrl + C per finisce u prucessu.

Pudete ancu creà un loop infinitu impone un còllulu cum'è a cundizione:

#! / bin / bash count = 1 mentre: do echo "$ count" dorme 1 ((count ++)) done

Per pudè usà diverse cundizioni in l'intricatu-loop, avete aduprà a notazione doppia caduta:

count = 1 fattu = 0 mentre chì [[$ count -le 9] && [$ done == 0]] fate echo "$ count" sleep 1 ((count ++)) se [$ count == 5]; dopu $ done = 1 à doneu

In questu script, a variable "done" hè inizializatu à 0 è da seguita settore à 1 quandu u cuncettu reachione 5. A situazione di ciclu chì u ciclu mentre continuarà mentre "contà" hè menu di novi è "fattu" hè uguali a cero. Dunque i ciclichi surtenu quandu u cuncettu equu 5.

U "&&" significa logicu "è" è "||" significa lògicu "o".

Una notazione alternante per a cunghjunzione "è" è "o" in e cundizzioni hè "-a" è "-o" cù chjorni singulari. A cundizione prima:

[[$ count -le 9] && [$ done == 0]]

... puderia riabilitevule cum'è:

[$ count -le 9] -a [$ done == 0]

Leghjendu un schedariu di testu hè tipicatu cù un pocu tempu. In l'esempiu di seguente, l'script scrittore leghjite u cuntenutu di linea per filu di un schedariu chjamatu "inventory.txt:"

FILE = inventory.txt exec 6

A prima linea assigna u nome di l'architettu input à a "FILE" variable. A seconda linea guarda u "input standard" in u descriptor di file "6" (puderia esse qualchì valore tra 3 è 9). Questu hè fattu chì "staggerata standard" pò esse restituita à u discrive file "0" à u fini di u script (vede u manifestazione "exec 0 In a 3a linea l'archivu di l'inpute hè attribuitu à u discrive file" 0 ", chì si usa per a entrata standard.L'articulazione "leghjite" leghjite una linea da u schedariu nantu à ogni iterazione è aghjunta à a "line1" variable.

Per sorte prematuremente un intrattu u ciclu, pudete aduprà l'esempiu di quasi:

count = 1 done = 0 mentre chì [$ count -le 9] fate echo "$ count" sleep 1 ((count + +)) se [$ count == 5] da then break fi done echo Finit

A manifestazione di uccasu scumpite l'esercitu di u prugettu à l'estremità mentre u ciclu è eseguisce qualsiasi stimi chì seguitanu. In questu casu, a dichjarazione "eccu Quandu".

A strada cuntinuu, per un'altra banda, sàpita solu u restu di u mentri u ciclu di a ricerca di l'iterazione currente è salta direttamenti à a prusta iterazione:

count = 1 done = 0 mentre chì [$ count -le 9] fate dorme 1 ((count + +)) se [$ count == 5] da continuà à u fiere "$ count" done echo Terminu

In questu casu, a parolla "cuntinueghjanu" hè esercitu quandu a "variable" variable "alcuni 5. Questa significa a stipule sussuttu (eccu" $ count ") hè micca esecutatu nantu à sta iterazione (quandu u valore di" contà "hè 5).