我想记录Bash脚本中的命令包含的所有错误消息。
问题是,如果我必须添加
E=$( ... 2>&1 ); echo $E >> $LOG
到所有命令,然后脚本将变得非常难以阅读。
问题
是否有可能获得全局变量,所以STDERR
变为STDOUT
?
答案 0 :(得分:6)
用这个开始你的脚本:
exec 2>&1
答案 1 :(得分:0)
您可以执行以下操作:
#!/bin/sh
test -z "$DOLOGGING" && { DOLOGGING=no exec $0 "${@}" 2>&1 | tee log-file; exit; }
...
将所有输出/错误复制到日志文件。虽然我似乎误解了这个问题,但似乎你只想将exec 2>&1 >/dev/null
添加到脚本的顶部,将所有错误打印到stdout并丢弃所有输出。