【问题标题】:Proper way of printing out an error message打印错误消息的正确方法
【发布时间】:2012-09-23 21:49:54
【问题描述】:

这一行是在 Bash 中打印错误消息的最佳方式吗?

echo 'Error: banana' >&2

我需要更新数十个使用各种不同方式记录错误的 Bash 脚本,我不妨选择“正确”的方式来执行此操作并遵守标准...

【问题讨论】:

    标签: bash


    【解决方案1】:

    在我的 bash 脚本的开头,我通常会定义一些函数,例如:

    error() {
      echo "$@" 1>&2
    }
    
    fail() {
      error "$@"
      exit 1
    }
    

    这对于输出致命和普通错误非常方便。 你可以将这个 sn-p 移动到一个单独的文件中,然后将 source 从你所有的 bash 脚本中移到一个类似的文件中:

    . /usr/local/lib/snippets/error_handling.sh
    

    因此,当您决定需要一种更好的方法来处理错误消息(例如,将严重错误发送到 syslog)时,您可以一次性更改所有脚本的行为。

    【讨论】:

    • 是的,我也在做同样的事情。集中记录的好主意。需要一个优雅的双重包含保护来避免两次采购这袋实用程序。
    【解决方案2】:

    在linux上,我更愿意说

    echo "Some error message" >> /dev/stderr
    

    当然,这将有效地做同样的事情,因为 /dev/stderr 符号链接到 /proc/$PID/fd/2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2023-02-16
      • 2023-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多