我有一个脚本,该脚本的开头和结尾都有:
echo "start" >> log
echo "end" >> log
原因是当脚本无法控制地失败时,我在LOGS文件中看不到任何行。但是,当脚本正确完成时,日志在LOG中可见。
有人知道为什么会这样吗?
答案 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