我想检查是否有错误的最后一条命令,因此将stderr重定向到一个文件并检查文件中的“错误”字符串(只有一个可能的。错误在这种情况下)bash:脚本看到的重定向文件'不存在'
我的脚本看起来像下面:
#aquire lock
rm -f /some/path/err.out
MyProgramme 2>/some/path/err.out &
if grep -i "error" /some/path/err.out ; then
echo "ERROR while running MyProgramme, check /some/path/err.out for error(s)"
#release lock
exit 1
fi
“如果”条件是给错误的err.out“没有这样的文件或目录”,不过,我可以看到该文件存在。
我错过了什么吗?..任何帮助表示赞赏。谢谢!
PS:我无法使用$检查退出代码?因为它在后台运行。
感谢您的回答。这里的程序运行永无止境。除了等待以外的其他方式? – Srikanth
嗯我可能是错的,但我认为'>'导致文件被立即创建/截断? –
@Srikanth如果程序永远不会结束,那么您怎么知道它在哪一点打印“错误”?你想等多久?如果“err”文件不存在,您是否要立即退出脚本?我的意思是如果程序永远运行或很长一段时间,那么不应该检查是否在最后或至少定期发生错误。 –