关于为单个命令或脚本重定向CONFIG += shared
和stderr
,有很多问题。我想要的是将任何stderr消息从我的Bash会话重定向到日志文件。
我想要一个交互式bash会话,其中所有stdout
都会重定向到一个文件。
答案 0 :(得分:6)
处理问题的可怕方法:
oApp.Namespace(FileNameZip).CopyHere oApp.Namespace(DestFolder).items
exec 3>&2
trap 'exec 2>>/path/to/your_file' DEBUG
PROMPT_COMMAND='exec 2>&3'
:我们先将fd 2复制到新的fd(此处为fd 3)exec 3>&2
:在执行每个命令之前(如果设置了shell选项trap 'exec 2>/dev/null' DEBUG
,这是交互式shell中的默认值),则会执行extdebug
陷阱:此处我们重定向DEBUG
到文件stderr
(确保您提供绝对路径)。/path/to/your_file
变量中的字符串:这里我们将fd2重定向到fd3(当fd3指向终端时,fd3是fd2的副本)。这是打印提示符所必需的。我不认为这是一种强大或好的方法,但它可能会为你的目的做好准备。
答案 1 :(得分:0)
是
exec 2> elsewhere
或重定向调用命令。
答案 2 :(得分:-4)
不是一个确切的答案,但这是我使用的。它将在屏幕上显示STDERR并将所有STDOUT和STDERR记录到日志中:
eval $1 2>&1 >>~/max.log | tee --append ~/bash.log