当脚本失败时,它不会执行echo“ TEXT” >> FILE

时间:2019-05-22 06:47:32

标签: shell scripting echo

我有一个脚本,该脚本的开头和结尾都有:

echo "start" >> log 
echo "end" >> log

原因是当脚本无法控制地失败时,我在LOGS文件中看不到任何行。但是,当脚本正确完成时,日志在LOG中可见。

有人知道为什么会这样吗?

2 个答案:

答案 0 :(得分:0)

因为标准stderr为2,所以默认日志输出仅显示1中的stdout。进行测试并显示结果。如果您将所有脚本发送为仅在一行中记录日志,请在定义日志文件后执行以下操作:

log_file="/tmp/script.log"
exec >> $log_file 2>&1

答案 1 :(得分:-1)

您需要将错误输出(2)定向到标准stdout:

echo "start" >> log 2>&1
echo "end" >> log 2>&1