【发布时间】:2012-09-23 21:49:54
【问题描述】:
这一行是在 Bash 中打印错误消息的最佳方式吗?
echo 'Error: banana' >&2
我需要更新数十个使用各种不同方式记录错误的 Bash 脚本,我不妨选择“正确”的方式来执行此操作并遵守标准...
【问题讨论】:
标签: bash
这一行是在 Bash 中打印错误消息的最佳方式吗?
echo 'Error: banana' >&2
我需要更新数十个使用各种不同方式记录错误的 Bash 脚本,我不妨选择“正确”的方式来执行此操作并遵守标准...
【问题讨论】:
标签: bash
在我的 bash 脚本的开头,我通常会定义一些函数,例如:
error() {
echo "$@" 1>&2
}
fail() {
error "$@"
exit 1
}
这对于输出致命和普通错误非常方便。
你可以将这个 sn-p 移动到一个单独的文件中,然后将 source 从你所有的 bash 脚本中移到一个类似的文件中:
. /usr/local/lib/snippets/error_handling.sh
因此,当您决定需要一种更好的方法来处理错误消息(例如,将严重错误发送到 syslog)时,您可以一次性更改所有脚本的行为。
【讨论】:
在linux上,我更愿意说
echo "Some error message" >> /dev/stderr
当然,这将有效地做同样的事情,因为 /dev/stderr 符号链接到 /proc/$PID/fd/2
【讨论】: