Carane Tulis Bash WHILE-Loops

Perintah, Sintaks, lan Conto

Sampeyan bisa nglakokaké urutan swara kanthi nulis file kasebut menyang file skrip banjur mlaku.

File skrip mung file teks, biasane karo ekstensi file .SH, sing ngemot urutan instruksi sing bisa uga dieksekusi saka baris perintah ( shell ).

Nalika Loop Conto

Ing ngisor iki minangka conto loop deleng. Nalika dieksekusi, file skrip iki bakal nyithak angka 1 nganti 9 ing layar. Ing statement nalika menehi luwih keluwesan kanggo nemtokake kondisi terminasi tinimbang kanggo-loop .

#! / bin / bash count = 1 nalika [$ count -le 9] do echo "$ count" sleep 1 ((count ++)) rampung

Contone, sampeyan bisa nggawe script sadurunge loop tanpa wates kanthi ora ngetokake statement increment "((count ++))":

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

Pernyataan "turu 1" ngaso kanthi eksekusi 1 detik ing saben pengulangan. Gunakake trabasan tombol Ctrl + C kanggo ngakhiri proses.

Sampeyan uga bisa nggawe daur ulang tanpa wates kanthi nempatake titik minangka syarat:

#! / bin / bash count = 1 nalika: aja echo "$ count" sleep 1 ((count ++)) rampung

Supaya bisa nggunakake pirang-pirang kahanan ing loop, sampeyan kudu nggunakake tandha kurungan kothak kaping pindho:

count = 1 rampung = 0 nalika [[$ count -le 9] && [$ done == 0]] aja echo "$ count" turu 1 ((count ++)) yen [$ count == 5]; banjur $ rampung = 1 wis rampung

Ing skrip iki, variabel "rampung" diinisialisasi dadi 0 lan banjur disetel dadi 1 nalika hitungan tekan 5. Kondisi daur ulang nyatakake yen loop sabanjure bakal terus anggere "count" kurang saka sangang lan "rampung" menyang nol. Mulane puteran metu nalika jumlah padha 5.

Ing "&&" tegese logis "lan" lan "||" tegese logis "utawa".

A notasi alternatif kanggo konjungsi "lan" lan "utawa" ing kahanan iku "-a" lan "-o" karo siji kurungan kothak. Kondhisi ing ndhuwur:

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

... bisa ditulis maneh minangka:

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

Maca file teks biasane rampung karo daur ulang wektu. Ing conto ing ngisor iki, aksara bash bisa maca baris isi kanthi baris file sing dijenengi "inventory.txt:"

FILE = inventory.txt exec 6

Baris kapisan nglebokake jeneng file input menyang variabel "FILE". Baris kapindho nyimpen "standar input" ing deskriptor file "6" (bisa uga ana nilai antarane 3 lan 9). Iki rampung supaya "standar input" bisa dibalèkaké kanggo ngajokaké deskriptor "0" ing mburi naskah (pirsani pernyataan "exec 0" Ing baris ka 3, file input ditugasake minangka file deskriptor "0" kanggo input standar. Ing "maca" statement banjur maca garis saka file ing saben iterasi lan nugasi menyang variabel "line1".

Supaya wanci awal metu-loop, sampeyan bisa nggunakake statement break kaya iki:

count = 1 rampung = 0 nalika [$ count -le 9] aja echo "$ count" turu 1 ((count ++)) yen [$ count == 5]

Statement break ngliwati eksekusi program nganti pungkasan nalika loop lan executes sembarang statements ing ngisor iki. Ing kasus iki, statement "echo Finished."

Pernyataan sabanjure, ing tangan liyane, ngliwati kabeh ringkasan saka statement loop nalika pengulangan saiki lan mlumpat langsung menyang pengulangan sabanjuré:

count = 1 rampung = 0 nalika [$ count -le 9] ngantuk 1 ((count ++)) yen [$ count == 5] banjur terusake telpon kanthi "$ count"

Ing kasus iki, statement "terus" dileksanakake nalika variabel "count" tekan 5. Iki tegese statement ing ngisor iki (echo "$ count") ora dileksanakake ing pengulangan kasebut (nalika nilai "count" 5).