Shell Scripting Tutorial for Beginners 19 - FOR loop
Tartalomjegyzék:
- A hurok standard bashája
- Hurok a húrok felett
- Húzza át egy számtartományt
- Hurkosítson át tömb elemeket
- C-stílusú Bash hurokhoz
- Break és folytassa nyilatkozatokat
- Break nyilatkozat
- Folytassa a nyilatkozatot
- Bash hurok példák
- Fájlok átnevezése szóközzel a fájlnévben
- A fájlkiterjesztés megváltoztatása
- Következtetés
A hurkok a programozási nyelvek egyik alapvető fogalma. A hurkok akkor hasznosak, ha parancsok sorozatát szeretné újra és újra futtatni, amíg egy bizonyos 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.
Ebben az oktatóanyagban a hurkok alapjait ismertetjük Bashban. Megmutatjuk azt is, hogyan lehet használni a break és a folytatás utasításokat a hurok folyamatának megváltoztatására.
A hurok standard bashája
A for hurok az elemek listáján iterál, és végrehajtja az adott parancsot.
A „Bash for loop” formája a következő:
for item in do done
A lista sztringek sorozata lehet, szóközökkel elválasztva, számtartomány, parancs kiadása, tömb stb.
Hurok a húrok felett
Az alábbi példában a hurok a karakterláncok listáján minden elemnél megismétlődik, és a változó
element
az aktuális elemre lesz állítva.
for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done
A hurok a következő kimenetet fogja produkálni:
Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium
Húzza át egy számtartományt
A szekvencia kifejezéssel megadhatja a számok vagy karakterek tartományát, meghatározva a tartomány kezdetét és végpontját. A szekvencia kifejezés a következő formájú:
{START..END}
Az alábbi példában a hurok minden 0-tól 3-ig számol.
for i in {0..3} do echo "Number: $i" done
Number: 0 Number: 1 Number: 2 Number: 3
A Bash 4-től kezdve a tartományok használatakor meg lehet adni a növekményt is. A kifejezés a következőképpen alakul:
{START..END..INCREMENT}
for i in {0..20..5} do echo "Number: $i" done
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
Hurkosítson át tömb elemeket
A for hurkot is felhasználhatja az elemek tömbjének iterálására:
Az alábbi példában egy tömböt definiálunk, és a tömb minden elemére iterálunk.
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done
Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby
C-stílusú Bash hurokhoz
A hurok C-stílusának szintaxisa a következőképpen alakul:
for ((INITIALIZATION; TEST; STEP)) do done
Az
INITIALIZATION
rész csak egyszer kerül végrehajtásra, amikor a hurok elindul. Ezután kiértékeljük a
TEST
részt. Ha ez hamis, akkor a for hurok megszakad. Ha a
TEST
igaz, akkor a for ciklus testén belüli parancsok végrehajtásra kerülnek, és a
STEP
rész frissül.
A következő kódban a hurok csillaggal jelzi az
i = 0
inicializálását, majd minden iteráció előtt ellenőrzi, hogy
i ≤ 10
. Ha igaz, akkor az
i
és
i
aktuális értékét 1-gyel (
i++
) kinyomtatja, különben a hurok véget ér.
for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done
A hurok 1001-szer iterál, és a következő kimenetet hozza létre:
Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000
Break és folytassa nyilatkozatokat
A break és folytatás utasítások felhasználhatók a hurok végrehajtásának vezérlésére.
Break nyilatkozat
A törés utasítás megszünteti az aktuális hurkot, és a programvezérlést átadja a megszüntetett utasítást követő utasításnak. 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 az if utasítást használjuk a hurok végrehajtásának befejezésére, ha az aktuális iterált elem megegyezik a „lítiummal”.
for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'
Element: Hydrogen Element: Helium 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.
A következő példában egy sorozaton át iterálunk, és amikor az aktuális iterált elem értéke "2", akkor a folytatás utasítás visszaadja a végrehajtást a hurok elejére és folytatja a következő iterációval.
for i in {1..5}; do if]; then continue fi echo "Number: $i" done
Number: 1 Number: 3 Number: 4 Number: 5
Bash hurok példák
Fájlok átnevezése szóközzel a fájlnévben
A következő példa bemutatja, hogyan lehet a Bash for hurkot felhasználva átnevezni az aktuális könyvtár összes fájlját szóközzel a nevében az alhúzás helyére cserélve.
for file in *\ *; do mv "$file" "${file// /_}" done
Bontjuk le a kódot soronként:
- Az első sor létrehoz egy for hurkot, és az összes fájl listáján iterál, amelynek a nevében szóköz van. A
*\ *
kifejezés létrehozza a listát. A második sor a lista minden elemére vonatkozik, és a fájlt egy új helyre helyezi, helyettesítve a szóközt aláhúzással (_
). A (z)${file// /_}
rész a héjparaméter-bővítést használja, hogy a paraméter belsejében levő mintát karakterláncra cserélje.done
jelzi a hurok szegmens végét.
A fájlkiterjesztés megváltoztatása
A következő példa bemutatja, hogyan lehet a Bash for hurkot felhasználni az.dpeg-vel végződő fájlok átnevezésére az aktuális könyvtárban, a.jpeg-ről a.jpg-re történő kiterjesztés kicserélésével.
for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done
Elemezzük a kódot soronként:
- Az első sor létrehoz egy for hurkot, és az összes fájl listájában megismétli a '.jpeg'-vel végződő fájlok listáját. A második sor a lista minden elemére vonatkozik, és a fájlt egy újra helyezi, a ".jpeg" helyébe a.jpg.
${file%.jpeg}
eltávolítja a „.jpeg” részt a fájlnévből a végrehajtott héjparaméter-kiterjesztéssel jelzi a hurokszakasz végét.
Következtetés
Mostanra jól meg kell értenie, hogy a bash for loop felhasználásával a listákban ismétlődik.
bash hurok terminálHogyan futtassuk a Bash-et az Ubuntu-n a Windows 10-en?
A Windows alrendszernek engedélyezése a Linux számára lehetővé teszi, hogy futtasson Ubuntu bájtot a Windows 10, , Linux parancssori eszközök, Linux-első eszközök
Bash tömbök
A tömbök a leggyakrabban használt és alapvető adatszerkezetek. Ebben a cikkben a Bash tömböket fedjük le, és elmagyarázzuk, hogyan kell ezeket használni a Bash szkriptekben.
Bash: csatolja a fájlhoz
Linuxban számos módon lehet szöveget csatolni egy fájlhoz. Ez a cikk néhányat ismertet.