AWK - 迴圈



本章將透過合適的示例解釋 AWK 的迴圈。迴圈用於重複執行一組操作。只要迴圈條件為真,迴圈執行就會繼續。

For 迴圈

for 迴圈的語法如下:

語法

for (initialization; condition; increment/decrement)
   action

最初,for 語句執行初始化操作,然後檢查條件。如果條件為真,則執行操作,然後執行增量或減量操作。只要條件為真,迴圈執行就會繼續。例如,下面的示例使用 for 迴圈列印 1 到 5:

示例

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

執行此程式碼後,您將得到以下結果:

輸出

1
2
3
4
5

While 迴圈

while 迴圈會一直執行操作,直到特定的邏輯條件評估為真。以下是 while 迴圈的語法:

語法

while (condition)
   action

AWK 首先檢查條件;如果條件為真,則執行操作。只要迴圈條件評估為真,此過程就會重複。例如,下面的示例使用 while 迴圈列印 1 到 5:

示例

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

執行此程式碼後,您將得到以下結果:

輸出

1
2
3
4
5

Do-While 迴圈

do-while 迴圈類似於 while 迴圈,不同之處在於測試條件是在迴圈結束時評估的。以下是 do-while 迴圈的語法:

語法

do
   action
while (condition)

do-while 迴圈中,即使條件語句評估為假,操作語句也至少執行一次。例如,下面的示例使用 do-while 迴圈列印 1 到 5 個數字:

示例

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

執行此程式碼後,您將得到以下結果:

輸出

1
2
3
4
5

Break 語句

顧名思義,它用於結束迴圈執行。這是一個示例,當總和大於 50 時結束迴圈。

示例

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

執行此程式碼後,您將得到以下結果:

輸出

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

Continue 語句

continue 語句用於迴圈內部,跳過迴圈的下一個迭代。當您希望跳過迴圈內某些資料的處理時,它非常有用。例如,下面的示例使用 continue 語句列印 1 到 20 之間的偶數。

示例

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

執行此程式碼後,您將得到以下結果:

輸出

2
4
6
8
10
12
14
16
18
20

Exit 語句

它用於停止指令碼的執行。它接受一個整數作為引數,該整數是 AWK 程序的退出狀態程式碼。如果沒有提供引數,exit 將返回狀態零。這是一個在總和大於 50 時停止執行的示例。

示例

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

輸出

執行此程式碼後,您將得到以下結果:

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

讓我們檢查指令碼的返回狀態。

示例

[jerry]$ echo $?

執行此程式碼後,您將得到以下結果:

輸出

10
廣告