Smyčka for je jedním z hlavních příkazů v různých programovacích jazycích a hodně pomáhá při správě vašeho VPS. Zde vysvětlíme, jak se používá v programovacím jazyce bash – odtud název „bash for loop“. Připravte se na přidání nového nástroje do svého vývojářského arzenálu!
Cyklus for je iterační příkaz, což znamená, že kód můžete spouštět opakovaně. Řekněme, že chcete spustit pokyn 5krát. Místo psaní pěti samostatných kódů stačí napsat syntaxi cyklu for jednou. Pojďme to prozkoumat hlouběji, ano?
Syntaxe Bash pro smyčku
V podstatě nejjednodušší syntaxe cyklu for opakuje výskyt množiny proměnné. Sekvence bash obvykle vypadá takto:
for VARIABLE in 1 2 3 4 5 .. N Perform the below command: command1 command2 commandN done
V reálném světě by tato syntaxe vypadala jako příklad níže:
#!/bin/bash for i in 1 2 3 4 5 do echo "Hello $i" done
Spuštění souboru bash způsobí následující sekvenci:
Hello 1 Hello 2 Hello 3 Hello 4 Hello 5
Pojďme zkontrolovat každý prvek:
- #!/bin/bash – ukazuje, že kód je bash skript
- i – je zástupný symbol pro proměnnou. Mezitím $i je individuální hodnota proměnné. Můžete to také napsat jako c/$c nebo jakýmkoli jiným jménem
- v – odděluje proměnnou a položky, které následují
- 1 2 3 4 5 – je příklad položek, na kterých chcete provést instrukci
- dělat – je klíčové slovo, které spouští smyčky. Poté provede instrukci nkrát, přičemž n je celkový počet položek. Zde je hodnota n 5
- ozvěte „Dobrý den:$i“ – je kód, který budeme nkrát opakovat. Pamatujte, že uvozovky změní vše, co je uvnitř, na jednu proměnnou.
- hotovo – zastaví smyčku
Kód můžete napsat odlišně v závislosti na verzi bash, kterou používáte:
Bash verze 3.0+ může zkrátit rozsah pomocí „.. “.
#!/bin/bash for i in {1..5} do echo "Hai $i" done
Bash verze 4.0+ vám umožňuje používat {START..END..INCREMENT} syntaxe.
#!/bin/bash for i in {0..8..2} do echo "Hai $i" done
Výsledek této bash sekvence bude vypadat takto:
Hai 0 Hai 2 Hai 4 Hai 6 Hai 8
Další běžné dvě syntaxe příkazů smyčky jsou tyto:
for VARIABLE in file1 file2 file3 do command1 on $VARIABLE command2 commandN done
A toto:
for OUTPUT in $(Linux-Or-Unix-Command-Here) do command1 on $OUTPUT command2 on $OUTPUT commandN done
Příklady Bash for Loop
Můžete aktualizovat syntaxi, abyste mohli provádět více operací. Pamatujte, že než něco uděláte, musíte se přihlásit do svého VPS. Pokud máte potíže, tento tutoriál Putty SSH vás navede na správnou cestu. Mezitím, pokud máte problémy s bash, měli byste se podívat na našeho průvodce základní bash funkcí. Pamatujte, že bash funkce musí být v .sh soubor. Chcete-li jej vytvořit, spusťte v příkazovém řádku následující příkaz:
vim NameOfFile.sh
Tím se vytvoří soubor .sh a otevře se v editoru VIM. Více se můžete dozvědět v dříve zmíněném článku o základních funkcích bash.
Použití Bash For Loop k vytvoření nekonečné smyčky
Po aktivaci bude tato smyčka spouštět kód, dokud ji nezastavíte stisknutím kláves Control + C. V tomto případě se výraz „Hello World“ bude sám od sebe znovu objevovat.
#!/bin/bash for (( ; ; )) do echo "Hello World!" done
Použití Bash pro smyčku k vytvoření smyčky se třemi výrazy
Smyčka se skládá ze tří zápisových výrazů – inicializátoru (EXP1 ), podmínka (EXP2 ) a výraz pro počítání (EXP3 ). Někdy tomu lidé říkají smyčka ve stylu C kvůli těsné podobnosti ve struktuře kódu. Syntaxe této smyčky je následující:
for (( EXP1; EXP2; EXP3 )) do command1 command2 command3 done
Zde je příklad příkazu smyčky, který si můžete sami vyzkoušet:
#!/bin/bash for (( c=1; c<=5; c++ )) do echo "Hai $c" done
Kód říká, že počáteční hodnota je 1 . Cyklus bude proveden, pokud bude splněna podmínka v EXP2 je true, což znamená, že by nemělo být větší než 5 . Kromě toho ++ znaménko ukazuje, že přírůstek je 1 . Poté zopakuje cyklus jeden po druhém počínaje počáteční hodnotou. Výsledek:
Hai 1 Hai 2 Hai 3 Hai 4 Hai 5
Použití Bash pro smyčku k vytvoření smyčky přeskočení a pokračování
Příkaz continue přeskočí smyčku pro uvedenou hodnotu a pokračuje ve smyčce poté. Zde je návod, jak by syntaxe vypadala:
for I in 1 2 3 4 5 do if [condition] then continue #Go to next iteration of I in the loop and skip statements3 fi statement done
Dodržením syntaxe můžeme vytvořit příkaz přeskočit bash a pokračovat ve smyčce, jako je tento:
for i in {1..5} do if [[ "$i" == '4' ]] then continue fi echo "Hai $i4" done
Výstup pro tuto bash sekvenci by byl:
Hai 1 Hai 2 Hai 3 Hai 5
Od hodnoty 4 odpovídalo příkazu continue, cyklus neprovedl kód a přešel na další hodnotu, což je 5 .
Použití Bash pro smyčku k vytvoření podmíněného ukončení s přerušovací smyčkou
Smyčka umožňuje zastavit operaci, pokud splňuje uvedenou podmínku. Poté může následovat další pokyn. Zde je syntaxe:
for I in 1 2 3 4 5 do if [condition] then break fi statement done
Při použití této funkce by náš příkaz smyčky vypadal takto:
for city in Manila Bangkok Jakarta Kuala Lumpur do if [[ "$city" == 'Jakarta' ]]; then break fi echo "city: $city" done echo 'Yes, that’s all!'
A výstup:
city: Manila city: Bangkok Yes, that’s all!
Příkaz říká smyčce, aby přerušila operaci, jakmile je podmínka pravdivá (vyhledání termínu Jakarta ). Poté spustí druhý kód, což je tisk textu, který říká Ano, to je vše.
Závěr
Bash for loop je skvělý pro automatizaci opakujících se úloh. Kromě výše uvedených základních příkladů toho můžete udělat mnohem víc. Můžete například sledovat soubory a provádět mnoho dalších úkolů. Seznam pokračuje!
Vše, co musíte udělat, je napsat příkazy smyčky. Může to být křivka učení, ale pročíst si tento úvod je dobrý začátek. Cvičení vždy dělá mistra! Hodně štěstí!