第7.10节:awk语言 exit 语句
1 第7.10节:awk语言 exit 语句
exit
语句会使 awk
立即停止执行当前规则,并停止处理输入;任何剩余输入都会被忽略。exit
语句的写法如下:
exit [return code]
当 exit
语句在 BEGIN
规则中执行时,程序会立即停止所有处理,不会读取任何输入记录。不过,如果存在 END
规则,执行 exit
语句时会执行 END
规则。如果在 END
规则体中使用 exit
,会使程序立即停止。
若 exit
语句不属于 BEGIN
或 END
规则,它会停止对当前记录执行任何后续自动规则,跳过读取剩余输入记录,若有 END
规则则执行该规则。gawk
还会跳过所有 ENDFILE
规则,不执行它们。
这种情况下,若不想让 END
规则执行其操作,可在 exit
语句前将一个变量设为非零值,然后在 END
规则中检查该变量。
如果给 exit
提供参数,其值会用作 awk
进程的退出状态码。若未提供参数,exit
会让 awk
返回“成功”状态。在给第一条 exit
语句提供参数,之后从 END
规则中不带参数调用 exit
的情况下,awk
会使用之前提供的退出值。
例如,假设出现难以处理或无法处理的错误情况。按惯例,程序会通过退出状态码非零来报告这类情况。awk
程序可使用带非零参数的 exit
语句实现,如下例所示:
BEGIN {if (((date | getline date_now) <= 0) {print "Can't get system date" > "/dev/stderr"exit 1}print "current date is", date_nowclose("date")
}
注意:为了实现完全可移植性,退出值应在 0 到 126 之间(包含 0 和 126 )。负值、127 或更大的值,在不同操作系统上可能不会产生一致结果。
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.