我正在尝试使用此处找到的一行代码的一部分:监视文件夹中是否有新文件的脚本?
当我尝试以下过程时,我没有得到任何输出,而且我不明白为什么。
在 1 号航站楼:
inotifywait -m ~/somefolder | awk '{ print $3; fflush() }'
然后在 2 号航站楼:
touch ~/somefolder/newfile
当不通过管道传输到 awk 时,inotifywait 会将所有预期事件列出到 stdout,并且重定向到文件也没有问题。 awk 似乎也可以独立于 inotifywait 正常工作,在通过管道传输到它的文本上,其结构类似于 inotifywait 的输出。将两者一起使用对我来说不起作用。
编辑:
awk 是我机器上 mawk 的别名,但不起作用。然而,gawk 成功了,并按预期工作。
答案1
正如您所发现的,mawk
缓冲其输入,因此一旦通知消息总数达到 k 左右,您可能会看到效果。链接的文章表明 mawk 有一个-Winteractive
标志可以禁用它,但我可以检查它。