Skip to main content

Kā uzrakstīt Bash WHILE-Loops

Anonim

Jūs varat izpildīt komandu secību, ierakstot tos skripta failā un pēc tam to izpildot.

Skripta fails ir vienkārši teksta fails, parasti ar .SH faila paplašinājumu, kas satur instrukciju secību, kuru var izpildīt arī no komandrindas (shell).

Kaut cilpa piemēri

Zemāk ir piemērs, kamēr nav cilpas. Kad izpildīts, šis skripta fails izdrukās numurus no 1 līdz 9 ekrānā. Laika pārskats sniedz jums lielāku elastību, lai norādītu izbeigšanas nosacījumu nekā for-loop.

Piemēram, jūs varat padarīt iepriekšējo skriptu bezgalīgu cilpu, izlaižot pieauguma paziņojumu "((count ++))":

"Miega 1" paziņojums aptur izpildi par 1 sekundi katrā atkārtojumā. Lai pārtrauktu procesu, izmantojiet taustiņu kombināciju Ctrl + C.

Jūs varat arī izveidot bezgalīgu cilpu, ievietojot kolu kā nosacījumu:

Lai izmantotu vairākus nosacījumus cikla laikā, jums ir jāizmanto dubultā kvadrātiekavas uzraksts:

Šajā skriptā mainīgais "done" tiek inicializēts ar 0 un tad tiek iestatīts uz 1, kad skaits sasniedz 5. Kontūras stāvoklis nosaka, ka cilnes cilpas turpinās tik ilgi, kamēr "count" ir mazāks par deviņiem un "done" ir vienāds līdz nullei. Tāpēc cilpas iziet, kad skaits ir vienāds ar 5.

"&&" ir loģisks "un" un "||" ir loģisks "vai".

Alternatīva nozīme konjunkcijām "un" un "vai" apstākļos ir "-a" un "-o" ar vienādām kvadrātiekavās. Iepriekšminētais nosacījums:

… var pārrakstīt kā:

Teksta faila lasīšana parasti tiek veikta ar cikla laiku. Turpmākajā piemērā bash skripts skan satura rindu pēc faila rindas ar nosaukumu "inventory.txt:"

Pirmā rinda piešķir ievades faila nosaukumu mainīgajam failam "FILE". Otrā rinda saglabā "standarta ievadi" faila deskriptorā "6" (tā var būt jebkura vērtība no 3 līdz 9). Tas tiek darīts tā, lai "standarta ievadi" varētu atjaunot faila deskriptorā "0" skripta beigās (sk. Paziņojumu "exec 0" 3. rindā ievades fails tiek piešķirts faila deskriptoram "0", kuru lieto par standarta ievadei. "Lasīt" paziņojums pēc tam lasa līniju no faila par katru iterāciju un piešķir to "line1" mainīgajam.

Lai priekšlaikus izietu no cikla, varat izmantot pārtraukuma paziņojumu šādi:

Pārtraukuma paziņojums pārtrauc programmas izpildi līdz cilpu beigās un izpilda visus paziņojumus pēc tā. Šajā gadījumā paziņojums "echo Finished".

No otras puses, turpinājuma paziņojums izlaiž tikai pārējo pašreizējās iterācijas cikla pārskatu un pāriet tieši uz nākamo iterāciju:

Šajā gadījumā paziņojums "continue" tiek izpildīts, kad mainīgais "count" sasniedz 5. Tas nozīmē, ka nākamajā izteiksmē (echo "$ count") šajā atkārtojumā netiek izpildīts (ja "count" vērtība ir 5).