awk

Break Statement

break 语句

break语句用于跳出包裹它的内层循环(while,do-while,for)。注意break语句意味着你在循环里使用它。

下面的例子打印一个月没有销售项目的项目号,比如:从字段2到字段7有0值的。

$ cat break.awk
{
    i=2; total=0;
    while (i++ <= NF)
    if ($i == 0) {
        print "Item", $1, "had a month with no item sold"
        break;
    }
}

$ awk -f break.awk items-sold.txt
Item 102 had a month with no item sold
Item 104 had a month with no item sold

如果你执行下面命令,按ctrl-c停止脚本并跳出它。

$ awk 'BEGIN{while(1) print "forever"}'

上面的awk while循环永远的打印字符串forever,因为条件从不失败。虽然在处理控制里或操作系统应用里一直循环被使用,通常这不是一件好事。

让我们修改循环,使其执行十次,并通过break语句终止。

$ awk 'BEGIN{x=1;while(1){print "Iteration"; if (x == 10) break; x++;}}'

上面命令产生下面输出:

Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration
Iteration