我正在阅读有关awk
脚本的教程,并观察到这种奇怪的行为,为什么这个awk脚本在执行时会反复询问一个数字,即使没有像while
或{{1}这样的循环结构}。如果我们输入for
(EOF),它会停止提示输入另一个号码。
CTRL+D
请解释上述awk脚本的这种行为
答案 0 :(得分:2)
awk
继续在线上工作,直到到达文件末尾。因为在这种情况下,输入( STDIN )永远不会在您继续输入数字或点击输入时结束,它会导致无限循环。
点击 CTRL + D 后,您可以通过退出循环来指示<{1}}脚本已达到 EOF 。
答案 1 :(得分:0)
尝试此操作并输入0退出
BEGIN {
print "type a number";
}
{
if($1==0)
exit;
print "The square of ", $1, " is ", $1*$1;
print "type another number";
}
END {
print "Done"
}
答案 2 :(得分:0)
来自着名的The AWK Programming Language:
如果您没有在命令行上为awk脚本提供输入文件,awk会将程序应用于您在终端上键入的任何内容,直到您输入文件结束信号(在Unix上为control-d)系统)。