Jak używać bash do pętli w Linux

Jak używać bash do pętli w Linux

W językach programowania, Pętle są niezbędnymi komponentami i są używane, gdy chcesz powtarzać kod w kółko, dopóki nie zostanie spełniony określony warunek.

W Grzmotnąć Skrypty, Pętle odgrywać tę samą rolę i służą do automatyzacji powtarzających się zadań, tak jak w językach programowania.

W Grzmotnąć Skrypty, istnieją 3 rodzaje Pętle: dla pętli, podczas pętli, I aż do pętli. Te trzy są używane do iterowania listy wartości i wykonania danego zestawu poleceń.

W tym przewodniku skupimy się na Bash for Loop w Linux.

Bash dla składni pętli

Jak wspomniano wcześniej, dla pętli iteruje w zakresie wartości i wykonuje zestaw poleceń.

Dla pętli przyjmuje następującą składnię:

Dla zmiennej nazwy wartości wartości 1 wartość 2 Wartość 3… n do command1 Command2 Commandn 

Sprawdźmy teraz kilka przykładowych zastosowań Bash dla pętli.

Bash proste dla pętli

W najprostszej formie, Dla pętli przyjmuje następujący podstawowy format. W tym przykładzie zmienna N Itera nad grupą wartości numerycznych zamkniętych w kręconych aparatach ortodontycznych i drukuje swoje wartości do stdout.

dla n w 1 2 3 4 5 6 7; echo $ n 
Przykład Bash for Loop

Bash for Loop z zakresem

W poprzednich przykładach wyraźnie wymieniliśmy wartości, które są iterowane dla pętli, który działa dobrze. Możesz jednak tylko wyobrazić sobie, jak uciążliwe i czasochłonne zadanie byłoby, gdybyś był na przykład iteracyjny, sto wartości. To zmusiłoby do wpisania wszystkich wartości od 1 do 100.

Aby rozwiązać ten problem, określ zakres. Aby to zrobić, określ liczbę, aby rozpocząć i zatrzymać się oddzielone dwoma okresami.

W tym przykładzie 1 jest pierwszą wartością, a 7 to ostatnia wartość w zakresie.

#!/bin/bash dla n in 1… 7; echo $ n 

Po wykonaniu skryptu powłoki wszystkie wartości w zakresie są wymienione, podobnie jak to, co mieliśmy Proste pętle.

Bash do pętli z przykładem zakresu

Dodatkowo możemy uwzględnić wartość na końcu zakresu, który spowoduje dla pętli iterować wartości w krokach przyrostowych.

Poniższy skrypt Bash drukuje wartości między 1 a 7 z 2 krokami przyrostowymi między wartościami od pierwszej wartości.

#!/bin/bash dla n in 1… 7… 2; echo $ n 
Bash dla wartości zwiększonych pętli

Z powyższego przykładu widać, że pętla zwiększył wartości wewnątrz klastrowych klamrów o 2 wartości.

Bash for Loops z tablicami

Możesz również łatwo iterować poprzez wartości zdefiniowane w tablicy za pomocą Dla pętli. W poniższym przykładzie dla pętli iteruje wszystkie wartości wewnątrz Tablica owoców i drukuje je na stdout.

#!/bin/bash owoce = („Blueberry” „brzoskwinia” „mango” „ananas”) dla n in $ owoce [@]; echo $ n 
Przykład Bash for Loop macierz

@ Operator uzyskuje dostęp lub jest skierowany do wszystkich elementów. To umożliwia iterowanie wszystkich elementów jeden po drugim.

Ponadto możesz uzyskać dostęp do jednego elementu, określając jego pozycję w tablicy.

Na przykład, aby uzyskać dostęp do „mango”Element, wymień @ Operator z położeniem elementu w tablicy (pierwszy element zaczyna się od 0, więc w tym przypadku „mango”Zostanie oznaczony przez 2).

Tak wygląda pętla.

#!/bin/bash owoce = („blueberry” „brzoskwinia” „mango” „ananas”) dla n in $ owoce [2]; echo $ n 
Bash for Loops z elementami tablicy

Bash C-Styled dla pętli

Możesz użyć zmiennych wewnątrz pętli, aby iterować w zakresie elementów. Tam jest C-stypowe dla pętli Wejdź. Poniższy przykład ilustruje Style C dla pętli który drukuje listę wartości numerycznych od 1 do 7.

#!/bin/bash n = 7 dla (n = 1; n<=$n ; n++ )); do echo $n done 
Przykład Bash C-Styled dla pętli

Bash C-Styled dla pętli z instrukcjami warunkowymi

W środku możesz dołączyć instrukcje warunkowe C-stypowe dla pętli. W poniższym przykładzie dołączyliśmy instrukcję IF-ELSE, która sprawdza i drukuje równe i nieparzyste liczby między 1 a 7.

#!/bin/bash dla ((n = 1; n<=7; n++ )) do # Check if the number is even or not if (( $n%2==0 )) then echo "$n is even" else echo "$n is odd" fi done 
Bash C-stylowe dla pętli Instrukcje warunkowe Przykład

Użyj instrukcji „Kontynuuj” z Bash dla pętli

''Kontynuować„Instrukcja to wbudowane polecenie, które kontroluje sposób działania skryptu. Oprócz scenariuszy Bash jest również używany w językach programowania, takich jak Python i Java.

Kontynuuj oświadczenie zatrzymuje bieżącą iterację w pętla Po spełnieniu określonego warunku, a następnie wznowi iterację.

Weź pod uwagę dla pętli pokazane poniżej.

#!/bin/bash dla n in 1… 10 do jeśli [[$ n -eq '6']], a następnie echo „cel $ n został osiągnięty” kontynuuj fi echo $ n 
Bash for Loop Kontynuuj przykład

To właśnie robi kod:

  • Linia 2: Oznacza początek pętli i iterować zmienną n od 1 do 10.
  • Linia 4: Sprawdza wartość n, a jeśli zmienna jest równa 6, skrypt przypomina wiadomość do stdout i ponownie uruchamia pętlę przy następnej iteracji w wierszu 2.
  • Linia 9: Drukuje wartości na ekranie tylko wtedy, gdy warunek w wierszu 4 jest fałszywy.

Poniżej znajduje się oczekiwane dane wyjściowe po uruchomieniu skryptu.

Bash for Loop Kontynuuj instrukcję wyjściową

Użyj instrukcji „Break” z Bash dla pętli

'przerwa' stwierdzenie, jak sama nazwa wskazuje, zatrzymuje lub kończy iterację, gdy stan jest spełniony.

Weź pod uwagę Dla pętli poniżej.

#!/bin/bash dla n in 1… 10 do jeśli [[$ n -eq '6']], a następnie echo „cel $ n został osiągnięty„ Break fi echo $ n dokonano echo „wszystko zrobione” 
Instrukcja Bash for Loop Break

To właśnie robi kod:

  • Linia 2: Oznacza początek pętli i iterować zmienną n od 1 do 10.
  • Linia 4: Sprawdza wartość n, a jeśli zmienna jest równa 6, skrypt przypomina wiadomość do stdout i wstrzymuje iterację.
  • Linia 9: Drukuje liczby na ekranie tylko wtedy, gdy warunek w wierszu 4 jest fałszywy.

Ze wyjścia widać, że pętla zatrzymuje się, gdy zmienna spełnia warunek pętli.

Bash for Loop Break Instrukcja wyjściowa
Wniosek

To był samouczek o Bash do pętli. Mamy nadzieję, że uznałeś to za wnikliwe. Zapraszam do zważenia ze swoją opinią.