1

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

问题是,如果我必须添加

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

对于所有命令,那么脚本将变得非常难以阅读。

问题

是否有可能获得一个全局变量,所以一切都STDERR变成了STDOUT

4

2 回答 2

6

只需使用以下命令开始您的脚本:

 exec 2>&1
于 2013-02-11T14:00:59.040 回答
0

您可以执行以下操作:

#!/bin/sh

test -z "$DOLOGGING" && { DOLOGGING=no exec $0 "${@}" 2>&1 | tee log-file; exit; }
...

将所有输出/错误复制到日志文件。尽管我似乎误读了这个问题,而且您似乎只想添加exec 2>&1 >/dev/null到脚本的顶部以将所有错误打印到标准输出并丢弃所有输出。

于 2013-02-11T13:59:40.497 回答