【问题标题】:Redirect stderr from a script WITH command that generated the error从生成错误的脚本 WITH 命令重定向 stderr
【发布时间】:2012-10-09 03:07:46
【问题描述】:

我有一个调用多个命令的 bash 脚本。 我已经使用

重定向了所有错误输出
    exec 2> logfile

虽然这可行,但最好将生成错误输入的命令输入到日志文件中。 有人有建议吗?

【问题讨论】:

    标签: bash


    【解决方案1】:

    这对你有用吗?:

    BASH_XTRACEFD="2"
    set -x
    

    【讨论】:

    • 我熟悉 set -x 并使用它进行调试,但我不熟悉您设置的变量当我将它添加到我的脚本时,所有运行的命令都会输出到日志文件,我只想获取那些产生错误的命令
    • 我想一种方法是使用 sed 处理输出:sed -e '/^+/{h;d};:a;H;N;s/.*\n//;/^+/{x;p;d};ba' logfile
    • 感谢您的输入,虽然这确实完成了我的要求,但我不确定让脚本一直在调试中运行的感觉如何。我会相信你的回答,但我想我会接受使用 exec 2> logfile 得到的东西
    猜你喜欢
    • 2021-01-28
    • 2011-07-16
    • 2010-11-28
    • 2013-09-17
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多