Skip to main content

Ako napísať Bash WHILE-Loops

Anonim

Môžete vykonať sekvenciu príkazov ich zapísaním do súboru skriptu a následným spustením.

Súbor skriptu je jednoducho textový súbor, zvyčajne s príponou súboru .SH, ktorý obsahuje postupnosť inštrukcií, ktoré je možné vykonať aj z príkazového riadka (shellu).

Zatiaľ čo príklady slučiek

Nižšie je uvedený príklad cyklu while. Po spustení tento súbor skriptov vytlačí čísla 1 až 9 na obrazovke. Príkaz-while vám dáva väčšiu flexibilitu pri určovaní podmienky ukončenia ako v prípade cyklu "for-loop".

Napríklad môžete skorší skript vytvoriť nekonečnú slučku vynechaním príkazu prírastku "((count ++))":

Vyhlásenie "spánok 1" pozastaví výkon na 1 sekundu pri každej iterácii. Pomocou klávesovej skratky Ctrl + C ukončíte proces.

Môžete tiež vytvoriť nekonečnú slučku tak, že položíte dvojbodku ako podmienku:

Aby ste mohli používať viaceré podmienky v bežnej slučke, musíte použiť notáciu s dvojitým štvorcovým závorníkom:

V tomto skripte sa premenná "done" inicializuje na hodnotu 0 a potom sa nastaví na hodnotu 1, keď počet dosiahne 5. Štýl slučky udáva, že cyklica while bude pokračovať tak dlho, kým "count" je menej ako deväť a "done" je rovné na nulu. Preto sa slučky ukončia, keď sa počet rovná 5.

"&&" znamená logické "a" a "||" znamená logické "alebo".

Alternatívna poznámka pre spojky "a" a "alebo" v podmienkach je "-a" a "-o" s jednoduchými hranatými zátvorkami. Vyššie uvedená podmienka:

… možno prepísať ako:

Čítanie textového súboru sa zvyčajne vykonáva s okamihovým okamihom. V nasledujúcom príklade skript bash číta obsahový riadok súboru s názvom "inventory.txt:"

Prvý riadok priradí názov vstupného súboru premennej "FILE". Druhý riadok ukladá "štandardný vstup" do deskriptora súboru "6" (môže to byť ľubovoľná hodnota medzi 3 a 9). To sa deje tak, že "štandardný vstup" môže byť na konci skriptu obnovený na deskriptor súborov "0" (pozri príkaz "exec 0" V treťom riadku je vstupný súbor priradený deskriptoru súboru "0", ktorý sa používa pre štandardný vstup.Výkaz "čítať" potom číta riadok zo súboru na každej iterácii a priradí ju premennej "riadok1".

Aby sme mohli predčasne opustiť funkciu while-loop, môžete použiť výraz break takto:

Príkaz prerušenia preskočí spúšťanie programu do konca, zatiaľ čo slučka vykoná akékoľvek vyhlásenia, ktoré nasledujú. V tomto prípade vyhlásenie "echo Finished".

Pokračujúci príkaz na druhej strane preskočí iba zvyšok výkazu slučky momentu aktuálnej iterácie a preskočí priamo na ďalšiu iteráciu:

V tomto prípade sa príkaz "pokračovať" vykoná, keď premenná "count" dosiahne hodnotu 5. To znamená, že v tejto iterácii nie je vykonané nasledujúce vyhlásenie (echo "$ count") (ak je hodnota "count" 5).