logo

Bash For Loop

V tomto tématu pochopíme použití pro smyčku ve skriptech Bash.

Stejně jako jakýkoli jiný programovací jazyk také skriptování bash shell také podporuje „cykly for“ pro provádění opakujících se úkolů. Pomáhá nám iterovat konkrétní sadu příkazů přes řadu slov v řetězci nebo prvky v poli. Například můžete buď spustit UNIXový příkaz (nebo úlohu) mnohokrát nebo jen číst a zpracovávat seznam příkazů pomocí „smyčky for“.

Syntaxe For Loop

Můžeme použít 'for loop' na bash skript dvěma způsoby. Jeden způsob je 'for-in' a jiný způsob je syntaxe ve stylu c. Následuje syntaxe 'for loop' ve skriptování bash shell:

 for variable in list do commands done 

Nebo

 for (( expression1; expression2; expression3 )) do commands done 

Existuje několik klíčových bodů příkazu „for loop“:

  • Každý blok 'for loop' v bash začíná klíčovým slovem 'do' následovaným příkazy uvnitř bloku. Příkaz „for loop“ je uzavřen klíčovým slovem „done“.
  • Doba, po kterou se bude opakovat „cyklus for“, závisí na deklarovaných proměnných seznamu.
  • Smyčka vybere jednu položku ze seznamu a přiřadí hodnotu proměnné, která bude použita v rámci smyčky.
  • Po provedení příkazů mezi 'do' a 'done' se smyčka vrátí na začátek a vybere další položku ze seznamu a celý proces zopakuje.
  • Seznam může obsahovat čísla nebo řetězec atd. oddělené mezerami.

Některé příklady „smyčky for“ jsou uvedeny níže, aby ilustrovaly, jak fungují:

Základní příklad „For Loop“.

Bash skript

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

Výstup

Bash For Loop

Pro smyčku pro čtení rozsahu

Bash skript

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

Výstup

Bash For Loop

Pro smyčku pro čtení rozsahu s přírůstkem/snižováním

Zadanou hodnotu můžeme zvýšit nebo snížit přidáním dvou dalších teček (..) a hodnoty postupně, např. {START..END..INCREMENT}. Podívejte se na příklad níže:

Pro přírůstek

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Výstup

Bash For Loop

Pro snížení

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Výstup

Bash For Loop

Pro smyčku pro čtení proměnných pole

K iteraci hodnot pole můžeme použít „cyklus for“.

modifikační klávesy

Syntaxi lze definovat jako:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Výstup

Pro každý prvek v 'array' se provedou příkazy nebo sada příkazů od 'do' do 'done'. Ke každému prvku lze přistupovat jako „i“ v rámci smyčky pro příslušnou iteraci. Podívejte se na níže uvedený příklad vysvětlující použití „smyčky for“ k iteraci prvků pole:

Bash skript

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Výstup

Bash For Loop

Pro smyčku ke čtení mezery v řetězci jako oddělovače slov

Syntaxi lze definovat takto:

 #!/bin/bash for word in $str; do done 

Tady, str odkazuje na řetězec.

Příkazy od 'do' do 'done' se provádějí pro každé 'slovo' řetězce. Podívejte se na příklad níže:

Bash skript

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

Výstup

Bash For Loop

Pro smyčku číst každý řádek v řetězci jako slovo

Syntaxi lze definovat následovně:

 #!/bin/bash for word in '$str'; do done 

Zde jsou příkazy od 'do' do 'done' provedeny pro každý 'řádek' řetězce. Podívejte se na příklad níže:

Bash skript

Rozvržení mřížky
 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

Výstup

Bash For Loop

Poznámka: Jediný rozdíl mezi 'Pro smyčku číst mezery v řetězci jako oddělovače slov' a 'Pro smyčku číst každý řádek v řetězci jako slovo' jsou dvojité uvozovky kolem proměnné řetězce.

Pro Loop to Read Tři výrazy

Syntaxe tří výrazů je nejběžnější syntaxí 'smyčky for'. První výraz se týká procesu inicializace, druhý výraz se týká ukončení a třetí výraz se týká zvýšení nebo snížení.

Podívejte se na níže uvedený příklad pro tisk 1 až 10 čísel pomocí tří výrazů se smyčkou for:

Bash skript

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

Výstup

Bash For Loop

Pro smyčku s příkazem Continue

Můžeme použít příkaz 'continue' uvnitř cyklu 'for' k přeskočení jakéhokoli konkrétního příkazu pro konkrétní podmínku. Řekne Bashovi, aby zastavil provádění této konkrétní iterace smyčky a zpracoval další iteraci.

Bash skript

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

Výstup

Bash For Loop

Závěr

V tomto tématu jsme diskutovali o tom, jak používat příkaz for loop v Bash k provádění konkrétních úkolů