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