AWK - Pętle

Ten rozdział wyjaśnia pętle AWK na odpowiednim przykładzie. Pętle służą do powtarzalnego wykonywania zestawu działań. Wykonywanie pętli trwa tak długo, jak długo warunek pętli jest spełniony.

Dla pętli

Składnia for pętla to -

Składnia

for (initialization; condition; increment/decrement)
   action

Początkowo forinstrukcja wykonuje akcję inicjalizacyjną, a następnie sprawdza warunek. Jeśli warunek jest prawdziwy, wykonuje akcje, a następnie wykonuje operację zwiększania lub zmniejszania. Wykonywanie pętli trwa tak długo, jak długo warunek jest spełniony. Na przykład poniższy przykład wyświetla od 1 do 5 przy użyciufor pętla -

Przykład

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

1
2
3
4
5

While Loop

Plik whilepętla wykonuje akcję, dopóki określony warunek logiczny nie uzyska wartości true. Oto składniawhile pętla -

Składnia

while (condition)
   action

AWK najpierw sprawdza warunek; jeśli warunek jest prawdziwy, wykonuje akcję. Ten proces powtarza się tak długo, jak długo warunek pętli przyjmuje wartość true. Na przykład poniższy przykład wyświetla od 1 do 5 przy użyciuwhile pętla -

Przykład

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

1
2
3
4
5

Pętla Do-While

Plik do-whilepętla jest podobna do pętli while, z tą różnicą, że warunek testu jest oceniany na końcu pętli. Oto składniado-whilepętla -

Składnia

do
   action
while (condition)

W do-whileinstrukcja akcji jest wykonywana co najmniej raz, nawet jeśli wynik instrukcji warunku jest fałszywy. Na przykład poniższy przykład wyświetla od 1 do 5 liczb przy użyciudo-while pętla -

Przykład

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

1
2
3
4
5

Instrukcja Break

Jak sama nazwa wskazuje, służy do zakończenia wykonywania pętli. Oto przykład, który kończy pętlę, gdy suma przekroczy 50.

Przykład

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Continue Statement

Plik continueinstrukcja jest używana wewnątrz pętli, aby przejść do następnej iteracji pętli. Jest to przydatne, gdy chcesz pominąć przetwarzanie niektórych danych wewnątrz pętli. Na przykład w poniższym przykładzie użytocontinue instrukcja, aby wydrukować liczby parzyste od 1 do 20.

Przykład

[jerry]$ awk 'BEGIN {
   for (i = 1; i <= 20; ++i) {
      if (i % 2 == 0) print i ; else continue
   } 
}'

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

2
4
6
8
10
12
14
16
18
20

Exit Statement

Służy do zatrzymania wykonywania skryptu. Przyjmuje liczbę całkowitą jako argument, która jest kodem statusu wyjścia dla procesu AWK. Jeśli nie podano argumentu,exitzwraca stan zero. Oto przykład, który zatrzymuje wykonanie, gdy suma przekroczy 50.

Przykład

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

Wynik

Wykonując ten kod, otrzymasz następujący wynik -

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Sprawdźmy status zwrotu skryptu.

Przykład

[jerry]$ echo $?

Wykonując ten kod, otrzymasz następujący wynik -

Wynik

10