打印错误消息的正确方法

时间:2012-10-03 00:48:52

标签: bash

此行是否是在Bash中打印错误消息的最佳方式?

echo 'Error: banana' >&2

我需要更新数十个使用所有不同方式记录错误的Bash脚本,我不妨选择“正确”的方式来执行此操作并遵循标准,因为我这样做...

2 个答案:

答案 0 :(得分:4)

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

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

fail() {
  error "$@"
  exit 1
}

对于输出致命和普通错误非常方便。 您可以将此代码段移动到一个单独的文件中,并source从您的所有bash脚本中移动,如下所示:

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

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

答案 1 :(得分:2)

在linux上,我更愿意说

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

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