6、結構化控制語句
6.1 if語句
格式:if(條件) {body} else {else body}
實例1:判斷/etc/passwd文件中的UID如果大于500則顯示為“common user”,否則顯示為“admin user”:
6.2 while循環
格式:while(條件){body}
條件為真時進入循環體。
實例2:打印出/etc/inittab文件中每行中為偶數個的字符串:
實例3:找出/etc/inittab文件中長度大于等于6個字符的字符串:
6.3 do-while循環
格式:do {body}while (條件)
先進入循環體執行一次,再判斷條件。
將實例3用do-while改寫如下:
6.4 for循環
格式:for (變量賦值;條件;條件修正){body}
將實例2和實例3分別使用for循環修改如下:
另外,for循環可用來遍歷數組元素,其格式語法如下:
for (i in 數組名) {for body}
6.5 循環控制
(1)break
結束整個循環體。
(2)continue
結束本次循環,進入下一次循環。
以上兩個命令的用法與在shell腳本中的用法相同。
6.6 next
提前結束對本行的處理,進入下一行的處理。
實例4:顯示/etc/passwd文件中行號為奇數的用戶名:
7、數組
7.1 定義數組變量
array[index]=element
inddex:可以使用任意字符串,如果某數組元素事先不存在,那么在引用時,awk會自動創建此元素并將其初始化為空串;因此要判斷其數組是否存在某元素,可以使用“index in array”這種格式。
7.2 遍歷數組變量
要遍歷數組中的每一個元素,需要使用如下特殊結構:
for (var in array) {for body}
var會遍歷array的索引。
實例5:統計netstat -ant顯示的結果中每種狀態的個數:
7.3 刪除數組變量
delete array[index]
原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/10464