logo

Bash dla pętli

W tym temacie zrozumiemy użycie dla pętli w skryptach Bash.

Podobnie jak każdy inny język programowania, skrypty powłoki bash obsługują także „pętle for” umożliwiające wykonywanie powtarzalnych zadań. Pomaga nam iterować określony zestaw instrukcji po serii słów w ciągu znaków lub elementach tablicy. Na przykład możesz wielokrotnie uruchamiać polecenie (lub zadanie) systemu UNIX lub po prostu czytać i przetwarzać listę poleceń za pomocą „pętli for”.

Składnia pętli For

Możemy zastosować „pętlę for” w skrypcie bash na dwa sposoby. Jednym ze sposobów jest „for-in”, a innym sposobem jest składnia w stylu c. Poniżej znajduje się składnia „pętli for” w skryptach powłoki bash:

 for variable in list do commands done 

Lub

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

Istnieje kilka kluczowych punktów instrukcji „pętla for”:

  • Każdy blok pętli „for” w bashu zaczyna się od słowa kluczowego „do”, po którym następują polecenia wewnątrz bloku. Instrukcja „pętla for” jest zamykana słowem kluczowym „done”.
  • Ilość czasu, przez jaki będzie wykonywana pętla for, zależy od zadeklarowanych zmiennych listowych.
  • Pętla wybierze jeden element z listy i przypisze wartość zmiennej, która będzie używana w pętli.
  • Po wykonaniu poleceń pomiędzy „do” i „done” pętla wraca na górę, wybiera kolejną pozycję z listy i cały proces powtarza.
  • Lista może zawierać liczby, ciągi znaków itp. oddzielone spacjami.

Poniżej podano niektóre przykłady pętli for, aby zilustrować ich działanie:

Podstawowy przykład „pętli For”.

Skrypt Basha

 #!/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.' 

Wyjście

Bash dla pętli

Aby pętla odczytała zakres

Skrypt Basha

 #!/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.' 

Wyjście

Bash dla pętli

Dla pętli, aby odczytać zakres ze zwiększaniem/zmniejszaniem

Możemy zwiększyć lub zmniejszyć określoną wartość, dodając dwie kolejne kropki (..) i wartość, o którą będziemy stopniowo zwiększać, np. {START..END..INCREMENT}. Sprawdź poniższy przykład:

Dla przyrostu

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

Wyjście

Bash dla pętli

Na zmniejszenie

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

Wyjście

Bash dla pętli

Dla pętli do odczytu zmiennych tablicowych

Możemy użyć pętli for do iteracji wartości tablicy.

instrukcja JavaScript if

Składnię można zdefiniować jako:

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

Wyjście

Dla każdego elementu tablicy wykonywane są instrukcje lub zestaw poleceń od „do” do „done”. Dostęp do każdego elementu można uzyskać jako „i” w pętli dla odpowiedniej iteracji. Sprawdź poniższy przykład wyjaśniający użycie „pętli for” do iteracji po elementach tablicy:

Skrypt Basha

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

Wyjście

Bash dla pętli

Dla pętli do odczytania białych znaków w ciągu znaków jako separatorów słów

Składnię można zdefiniować w następujący sposób:

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

Tutaj, ul odnosi się do ciągu.

Instrukcje od „do” do „done” są wykonywane dla każdego „słowa” ciągu. Sprawdź poniższy przykład:

Skrypt Basha

 #!/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 

Wyjście

Bash dla pętli

For Loop, aby odczytać każdą linię w String jako słowo

Składnię można zdefiniować w następujący sposób:

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

Tutaj instrukcje od „do” do „done” są wykonywane dla każdej „linii” ciągu. Sprawdź poniższy przykład:

Zainicjuj listę Pythona

Skrypt Basha

 #!/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 

Wyjście

Bash dla pętli

Uwaga: Jedyna różnica pomiędzy funkcją „For Loop czyta białe znaki w ciągu jako separatory słów” a „For Loop czyta każdą linię w ciągu jako słowo” polega na umieszczeniu zmiennej w podwójnym cudzysłowie wokół zmiennej łańcuchowej.

Dla pętli do odczytu trzech wyrażeń

Składnia trzech wyrażeń jest najczęstszą składnią „pętli for”. Pierwsze wyrażenie odnosi się do procesu inicjalizacji, drugie wyrażenie odnosi się do zakończenia, a trzecie wyrażenie odnosi się do inkrementacji lub dekrementacji.

Sprawdź poniższy przykład, aby wydrukować liczby od 1 do 10 przy użyciu trzech wyrażeń za pomocą pętli for:

Skrypt Basha

 #!/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;>

Wyjście

Bash dla pętli

Pętla For z instrukcją Kontynuuj

Możemy użyć instrukcji „kontynuuj” wewnątrz pętli „for”, aby pominąć dowolną konkretną instrukcję dotyczącą określonego warunku. Mówi Bashowi, aby przestał wykonywać tę konkretną iterację pętli i przetworzył następną iterację.

Skrypt Basha

 #!/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;>

Wyjście

Bash dla pętli

Wniosek

W tym temacie omówiliśmy, jak używać instrukcji pętli for w języku Bash do wykonywania określonych zadań