是否有一个可分配给变量的文件名(即不是像&1
这样的魔术内置shell令牌),它会让我重定向到stdout
?重定向到bash中的stdout
我最后想要做的是运行像这样在cron脚本:
LOG=/tmp/some_file
...
some_command 2>&1 >> $LOG
echo "blah" >> $LOG
...
便利,这让我通过重定向到/dev/null
后关闭日志时的噪音我敢肯定,没有什么可能会失败(或至少没有我关心的东西!)而无需重写整个脚本。是的,关闭日志并不是最好的做法 - 但是一旦这个脚本正常工作,没有什么可以想象的出错,并且不需要任何人不想读取的兆字节日志信息。
5年后意外失败的情况下,仍然可以通过翻转开关再次打开日志。另一方面,在编写和调试脚本时,它涉及从shell手动调用它,如果它只是将输出转储到控制台,那将是非常好的。这样我就不需要手动登录日志文件tail
。
换句话说,我正在寻找的是类似/proc/self/fd/0
的bash-talk,我可以指定给LOG
。碰巧,/proc/self/fd/0
在我的Linux机器上工作得很好,但我想知道是否没有这样的东西内置到bash中(这通常会是可取的)。
您似乎在寻找[this](http://stackoverflow.com/questions/3173131/redirect-copy-of-stdout-to-log-file-from-within-bash-script-itself)。 – devnull
伟大的使用案例,但问题标题的措辞并没有做到公平 - 也许是'持久重定向stdout和stderr在bash中'的说法。此外,考虑到找到的解决方案,我建议更新问题以使其专注于_intent_而不是您最初的解决方案尝试。 – mklement0