Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想记录 Bash 脚本中的命令包含的所有错误消息。
问题是,如果我必须添加
E=$( ... 2>&1 ); echo $E >> $LOG
对于所有命令,那么脚本将变得非常难以阅读。
问题
是否有可能获得一个全局变量,所以一切都STDERR变成了STDOUT?
STDERR
STDOUT
只需使用以下命令开始您的脚本:
exec 2>&1
您可以执行以下操作:
#!/bin/sh test -z "$DOLOGGING" && { DOLOGGING=no exec $0 "${@}" 2>&1 | tee log-file; exit; } ...
将所有输出/错误复制到日志文件。尽管我似乎误读了这个问题,而且您似乎只想添加exec 2>&1 >/dev/null到脚本的顶部以将所有错误打印到标准输出并丢弃所有输出。
exec 2>&1 >/dev/null