【问题标题】:Getting STDerr and STDout into a log file inside of a bash script将 STDerr 和 STDout 放入 bash 脚本内的日志文件中
【发布时间】:2014-05-11 19:03:21
【问题描述】:

我想知道如果他们更改脚本中的一个变量,是否有可能从我制作的脚本中获取所有输出到日志文件。例如,可以在脚本中设置变量createLog=true 以启用日志记录。

我知道我可以做到./myscript.sh 2>&1 | tee sabs.log

但我希望能够简单地运行./myscript.sh

并将整个脚本记录在一个文件中,如果 var 设置为 true,则输出到控制台。

我是否必须更改脚本中的每个命令才能完成此操作,或者是否有一个我可以在脚本开头执行的命令将输出到两者。

如果您需要更多详细信息,请告诉我。

谢谢!

【问题讨论】:

    标签: linux bash shell stdout stderr


    【解决方案1】:

    exec 不带参数可让您重定向当前脚本的其余部分。

    exec >log 2>&1
    

    您不能在重定向中tee,但您可以使用后台作业显示文件。

    tail -f log &
    

    【讨论】:

    • 您可以使用exec 重定向到进程替换:exec > >(tee sabs.log) 2>&1
    猜你喜欢
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多