Android

Bash miközben hurok

PHP Syntax

PHP Syntax

Tartalomjegyzék:

Anonim

A hurkok a programozási nyelvek egyik alapvető fogalma. A hurkok akkor hasznosak, ha parancsok sorozatát szeretné futtatni, ahányszor egy adott feltétel teljesül.

A szkriptnyelvekben, például a Bash, a hurkok hasznosak az ismétlődő feladatok automatizálásában. Három alapvető hurokkonstrukció van a Bash szkriptekben, a hurokhoz, míg a hurokhoz és a hurokig.

Ez az oktatóanyag megmagyarázza a Bash hurkok alapjait, valamint a break és a folytatás utasításokat a hurok áramlásának megváltoztatására.

Bash, míg a hurok

A while ciklus egy adott parancskészletet ismeretlen számú alkalommal hajt végre, mindaddig, amíg az adott feltétel valódivá válik.

A Bash while hurok formája a következő:

while do done

A állapotot a parancsok végrehajtása előtt értékelik. Ha a feltétel igaznak bizonyul, a parancsok végrehajtásra kerülnek. Ellenkező esetben, ha a feltétel hamisnak bizonyul, a hurok megszűnik, és a programvezérlés átkerül a következő parancshoz.

Az alábbi példában a hurok minden iteráción kinyomtatja az i változó aktuális értékét, és egyben növeli a változót.

i=0 while do echo Number: $i ((i++)) done

A vonal hurok iterál, amíg i kevesebb vagy egyenlő, mint kettő. A következő kimenetet fogja előállítani:

Number: 0 Number: 1 Number: 2

Végtelen, míg a hurok

A végtelen hurok egy hurok, amely határozatlan ideig ismétlődik és soha nem ér véget. Ha a feltétel mindig igaznak bizonyul, akkor végtelen hurkot kap.

A következő példában a beépített parancsot használjuk : amely mindig true értéket ad vissza, hogy végtelen ciklust hozzon létre. Használhatja a true beépített parancsot vagy bármilyen más utasítást is, amely mindig igaznak bizonyul.

while: do echo "Press to exit." sleep 1 done while: do echo "Press to exit." sleep 1 done

A fenti hurok végtelen ideig fut. A hurkot a CTRL+C megnyomásával megszakíthatja.

Itt van egysoros egyenérték:

while:; do echo 'Press to exit.'; sleep 1; done while:; do echo 'Press to exit.'; sleep 1; done

Olvassa el a fájl soronként

A while ciklus egyik leggyakoribb gyakorlata egy fájl, adatfolyam vagy változó olvasása soronként.

A következő példában a while hurok soronként elolvassa az /etc/passwd fájlt és kinyomtatja az egyes sorokat.

file=/etc/passwd while read -r line; do echo $line done < "$file"

Ahelyett, hogy a while hurkot egy feltétellel kontrollálnánk, bemeneti átirányítást ( < "$file" ) használunk, hogy egy fájlt továbbítsunk az read amely a hurkot vezérlő parancs. A rövid idő hurok addig fog futni, amíg az utolsó sort el nem olvassa.

A fájl soronkénti olvasásakor mindig használja a read -- -r opciót, hogy megakadályozzon, hogy a visszajelzés menekülési karakterként működjön.

Alapértelmezés szerint az read parancs kivágja a kezdő / hátsó szóköz karaktereket (szóközök és lapok). Használja az IFS= opciót az read parancs előtt, hogy megakadályozza ezt a viselkedést

file=/etc/passwd while IFS= read -r line; do echo $line done < "$file"

Break és folytassa nyilatkozatokat

A break és folytatás utasítások felhasználhatók a loop ciklus végrehajtásának vezérlésére.

Break nyilatkozat

A törés utasítás megszünteti az aktuális hurkot, és átadja a programvezérlést a megszüntetett hurkot követő parancsnak. Ezt általában a hurok lezárására használják, amikor egy bizonyos feltétel teljesül.

A következő példában a hurok végrehajtása megszakad, ha az aktuális iterált elem megegyezik 2 rel.

i=0 while do echo "Number: $i" ((i++)) if]; then break fi done echo 'All Done!'

Number: 0 Number: 1 All Done!

Folytassa a nyilatkozatot

A folytatás utasítás kilép a hurok aktuális iterációjáról, és a programvezérlést átadja a hurok következő iterációjának.

Az alábbiakban, ha az aktuális iterált elem megegyezik 2 a folytatás utasítás visszaadja a végrehajtást a hurok elejére és folytatja a következő iterációval.

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!

Következtetés

Mostanra már jól meg kell értenie, hogyan kell használni a bash miközben a hurkot.

bash hurok terminál