Bash输出错误信息到标准错误stderr

时间:2022-09-04 17:52:34

首先要了解文件描述符:

  • 文件描述符 0:表示标准输入stdinput
  • 文件描述符 1:表示标准输出stdout
  • 文件描述符 2:表示标准错误stderr

要把信息输出到标准错误,可以把stdout(文件描述符 1)重定向stderr(文件描述符 2),命令如下:

>&2 echo "error"

其中echo "error"是输出到stdout,>&2是把输出重定向到stderr。

为了避免和其他重定向发生交互,可以使用subshell:

(>&2 echo "error")

也可以定义为一个函数,在调用:

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

更多详细可以参考:http://wiki.bash-hackers.org/howto/redirection_tutorial