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 的直接第三方库,因为重定向是原生支持的,并且通常足够用。然而,对于复杂的应用程序,可以结合使用日志框架或外部日志工具,如 syslog
或 log4bash
,以更有效地管理 stdout 和 stderr。