linux最常用命令awk流程控制
在 linux awk 的 while、do-while 和 for 语句中允许使用 break, continue 语句来控制流程走向,也允许使用 exit 这样的语句来退出。break 中断当前正在执行的循环并跳到循环外执行下一条语句。if 是流程选择用法。awk 中,流程控制语句,语法结构,与 c 语言类似。有了这些语句,其实很多 shell 程序都可以交给 awk,而且性能是非常快的。下面是各个语句用法。
一. 条件判断语句
if(表达式)
语句1
else
语句2
格式中语句1可以是多个语句,为了方便判断和阅读,最好将多个语句用{}括起来。awk分枝结构允许嵌套,其格式为:
if(表达式)
{语句1}
else if(表达式)
{语句2}
else
{语句3}
每条命令语句后面可以用;分号结尾。示例:
awk ' BEGIN{
test=100;
if(test>90){
print "very good";
}
else if(test>60){
print "good";
}
else{
print "no pass";
}
} '
或者将单引号内(不包括单引号)保存为文件iffile.txt,然后执行
# awk -f iffile.txt
very good
二. while语句
while(表达式)
{语句}
示例:
# awk 'BEGIN{
test=100;
total=0;
while(i<=test){ total+=i; i++; } print total; }' 5050
三. for循环
3.1 格式1
for(变量 in 数组)
{语句}
示例:
awk 'BEGIN{
for(k in ENVIRON){
print k"="ENVIRON[k];
}
}'
TERM=linux
pwd=/root/text
logname=root
HOME=/root
SSH_CLIENT=192.168.1.21 53087 22
注:ENVIRON是awk常量数组,保存了系统的环境变量,通过这种方式获取值:ENVIRON[PATH],这就是获取PATH的值
3.2 格式2
for(变量;条件;表达式)
{语句}
示例:
awk 'BEGIN{
total=0;
for(i=0;i<=100;i++){ total+=i; } print total; }' 5050
四. do循环
do{语句}
while(条件)
例子:
awk 'BEGIN{
total=0;
i=0;
do {
total+=i;
i++;
}
while(i<=100) print total; }' 5050