【发布时间】:2019-12-12 04:34:35
【问题描述】:
我正在尝试合并 2 条单独工作的行,但我无法让它们一起工作。捕获并退出 1 的代码:
Python script.py > /logfile.log 2>&1
ret=$?
if [ $ret -ne 0 ]; then
exit $ret
fi
要将脚本的结果输出到屏幕和日志文件:
Python script.py 2>&1 | tee /logfile.log
我想把这两个命令结合起来,这样脚本就会输出到屏幕和日志文件,并且还会捕获退出代码 1 以在脚本失败时中止脚本。我尝试以不同的方式组合它们,但脚本要么继续运行,要么没有任何内容输出到屏幕。可以这样做吗?
【问题讨论】:
-
顺便说一句,您的原始代码只是编写
Python script.py > /logfile.log 2>&1 || exit的椒盐脆饼方式。请参阅stackoverflow.com/questions/36313216/… - 您可以通过放置正确的 shebang 轻松摆脱脚本名称前的Python。 -
@tripleee 我尝试了该命令,它以代码 1 退出,并记录到文件,但没有输出到屏幕。
-
确实,我指出了您原始命令中的一个错误,而不是试图回答您有关如何做到这一点的问题。
标签: bash logging output exit return-code