【发布时间】:2015-10-24 00:19:54
【问题描述】:
我的 Makefile 运行一个程序,当它在输入文件中发现问题时,只会将错误消息转储到 stderr 但仍然返回零。这是 Makefile sn-p:
target:
prog1 -i input1 input2 -o out.txt
prog2
“prog1”是程序,这是我的修复:
target:
prog1 -i input1 input2 -o out.txt 2>&1 1>/dev/null | tee err_log
if [ -s err_log ]; then false ; fi
prog2
基本上我将 stderr 重定向到文件 err_log 并检测 err_log 是否不为空。我还希望在控制台中显示错误消息。
这些都有效,但有一个小烦恼:false 命令,if [ -s err_log ]; then false ; fi 显示在控制台中,它位于控制台的末尾。
我想知道是否可以代替错误命令来停止制作但没有消息进入控制台?基本上我想要最后的stderr消息。
【问题讨论】:
-
false只设置返回状态。也许您希望exit 1终止处理?祝你好运。