据我了解,通常awk
遵循文件或输出。
然后它将在该文件或输出的每一行上执行其代码。
就我而言,我的命令awk '{print "Hi, Judy"}'
后面没有任何文件或输出。
据我了解,它应该不打印任何内容或引发错误。
但为什么实际上,它会弹出一个交互式命令行,如果我继续按Enter,它会向我显示无限类似的内容:
Hi, Judy
Hi, Judy
Hi, Judy
为什么这个命令会这样工作?
#该分界线以下的内容应被忽略
附加问题:
我尝试了另一个命令:
awk ' BEGIN { print "Hi." } { print "Buddy." } { print "Bye." } '
我期待它会Hi. Buddy. Bye.
无限打印。
但我得到了:
Hi.
Buddy
Bye.
Buddy
Bye.
Buddy
Bye.
这又让我困惑了。为什么可以END clause
无限地工作,而BEGIN clause
在这里却只能工作一次?
答案1
它从标准输入(即你的键盘)读取数据。
试试这个看看我的意思
awk '{ print "Here is your line:", $0 }'