可以在脚本中将所有输出都输出到stdout吗?

时间:2013-02-11 13:50:41

标签: linux bash ubuntu centos

我想记录Bash脚本中的命令包含的所有错误消息。

问题是,如果我必须添加

E=$( ... 2>&1 ); echo $E >> $LOG

到所有命令,然后脚本将变得非常难以阅读。

问题

是否有可能获得全局变量,所以STDERR变为STDOUT

2 个答案:

答案 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并丢弃所有输出。