Bash输出错误信息到标准错误stderr
首先要了解文件描述符:
- 文件描述符 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"