Bash:
写入标准错误

如何操作:

在 Bash 中,您使用 >&2 将输出重定向到 stderr。这是一个基本示例:

echo "这是一个普通消息"
echo "这是一个错误消息" >&2

运行这个脚本将在控制台显示两条消息,但如果您重定向它们,可以将 stdout 与 stderr 分开。例如:

bash script.sh > output.txt 2> error.txt

output.txt 将包含 "这是一个普通消息",而 error.txt 将捕获 "这是一个错误消息"

对于一个实际的用例,考虑一个处理文件并在文件不存在时报告错误的脚本:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename 不存在!" >&2
    exit 1
else
    echo "处理 $filename"
fi

example.txt 不存在时,直接在控制台上的样本输出:

example.txt 不存在!

Bash 中没有用于处理 stderr 的直接第三方库,因为重定向是原生支持的,并且通常足够用。然而,对于复杂的应用程序,可以结合使用日志框架或外部日志工具,如 sysloglog4bash,以更有效地管理 stdout 和 stderr。