国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

AWK 條件語句與循環(huán)

2018-11-27 08:08:52 15603

AWK 條件語句與循環(huán)

條件語句

IF 語句

IF 條件語句語法格式如下:

if (condition)
    action

也可以使用花括號來執(zhí)行一組操作:

if (condition){
    action-1
    action-1
    .
    .
    action-n}

以下實例用來判斷數(shù)字是奇數(shù)還是偶數(shù):

$ awk 'BEGIN {num = 10; if (num % 2 == 0) printf "%d 是偶數(shù)\n", num }'

輸出結(jié)果為:

10 是偶數(shù)

IF - ELSE 語句

IF - ELSE 條件語句語法格式如下:

if (condition)
    action-1else
    action-2

在條件語句 condition 為 true 時只需 action-1,否則執(zhí)行 action-2。

$ awk 'BEGIN {
    num = 11; 
    if (num % 2 == 0) printf "%d 是偶數(shù)\n", num; 
    else printf "%d 是奇數(shù)\n", num 
}'

輸出結(jié)果為:

11 是奇數(shù)

IF - ELSE - IF

我們可以創(chuàng)建多個 IF - ELSE 格式的判斷語句來實現(xiàn)多個條件的判斷:

$ awk 'BEGIN {
a=30;
if (a==10)
  print "a = 10";
else if (a == 20)
  print "a = 20";
else if (a == 30)
  print "a = 30";
}'

輸出結(jié)果為:

a = 30

循環(huán)

For

For 循環(huán)的語法如下:

for (initialisation; condition; increment/decrement)
    action

for 語句首先執(zhí)行初始化動作( initialisation ),然后再檢查條件( condition )。如果條件為真,則執(zhí)行動作( action ),然后執(zhí)行遞增( increment )或者遞減( decrement )操作。只要條件為 true 循環(huán)就會一直執(zhí)行。每次循環(huán)結(jié)束都會進條件檢查,若條件為 false 則結(jié)束循環(huán)。

下面的例子使用 For 循環(huán)輸出數(shù)字 1 至 5:

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

輸出結(jié)果為:

12345

While

While 循環(huán)的語法如下:

while (condition)
    action

While 循環(huán)首先檢查條件 condition 是否為 true ,若條件為 true 則執(zhí)行動作 action。此過程一直重復(fù)直到條件 condition 為 flase 才停止。

下面是使用 While 循環(huán)輸出數(shù)字 1 到 5 的例子:

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

輸出結(jié)果為:

12345

Break

break 用以結(jié)束循環(huán):

在下面的示例子中,當(dāng)計算的和大于 50 的時候使用 break 結(jié)束循環(huán):

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

輸出結(jié)果為:

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

Continue

Continue 語句用于在循環(huán)體內(nèi)部結(jié)束本次循環(huán),從而直接進入下一次循環(huán)迭代。

下面的例子輸出 1 到 20 之間的偶數(shù):

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

輸出結(jié)果為:

2468101214161820

Exit

Exit 用于結(jié)束腳本程序的執(zhí)行。

該函數(shù)接受一個整數(shù)作為參數(shù)表示 AWK 進程結(jié)束狀態(tài)。 如果沒有提供該參數(shù),其默認(rèn)狀態(tài)為 0。

下面例子中當(dāng)和大于 50 時結(jié)束 AWK 程序。

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

輸出結(jié)果為:

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

讓我們檢查一下腳本執(zhí)行后的返回狀態(tài):

$ echo $?

執(zhí)行上面的命令可以得到如下的結(jié)果:

19


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: