我正在编写一个启动无限循环的AWK脚本 - 因此在脚本中我验证了指定路径中文件的存在,如果是这样我将退出无限循环:
while ( ("ls -l /tmp/STOP" |& getline var4) > 0) {
exit 0
}
close("ls -l /tmp/STOP")
问题是我在运行时没有文件时出现标准错误:
ls:/ tmp / STOP:没有这样的文件或目录
我们如何在控制台上避免此标准错误消息?
答案 0 :(得分:0)
如果您不特别想要目录列表,请不要使用ls
。类似test -e /tmp/STOP
的退出代码会更好。
if (! system ("test -e /tmp/STOP")) exit 0
答案 1 :(得分:0)
尝试将错误流重定向到/dev/null
:
while ( ("ls -l /tmp/STOP 2>/dev/null" |& getline var4) > 0) {
exit 0
}
close("ls -l /tmp/STOP")
答案 2 :(得分:0)
BEGIN {
while ( system("sleep 1; test -f /tmp/STOP") ) print "The file is not there..."
exit
}
睡眠命令就在那里,因为你不想像疯了一样产生进程。