📅  最后修改于: 2023-12-03 14:59:29.058000             🧑  作者: Mango
在编写 Bash 脚本时,我们常常需要打印一些信息或者是调试信息,以便快速定位问题。当我们使用 echo
或者 printf
等命令打印信息时,默认会将信息输出到标准输出。但是,有时候我们希望将信息输出到标准错误(stderr)上,这样就能够将错误信息与正常输出分开,方便我们快速定位问题。
我们可以使用 >&2
将标准输出重定向到标准错误上,例如:
echo "Error: something wrong happened" >&2
这样,我们就可以将错误信息输出到标准错误上了。
同样的,我们也可以将命令的标准错误重定向到标准输出上,这样输出的信息就可以和正常输出信息一样进行处理了。例如:
command 2>&1
这里的 2
表示标准错误(stdout),1
表示标准输出(stderr)。
#!/bin/bash
# 定义一个数组
array=(1 2 3 4 5)
# 遍历数组并打印信息
for i in "${array[@]}"
do
# 判断是否为奇数
if [ $((i%2)) -eq 1 ]; then
# 输出到标准错误上
echo "$i is an odd number" >&2
else
# 输出到标准输出上
echo "$i is an even number"
fi
done
输出结果:
1 is an odd number
2 is an even number
3 is an odd number
4 is an even number
5 is an odd number
可以看到,奇数的信息被输出到了标准错误上,而偶数的信息被输出到了标准输出上。
Bash 回显到 stderr 是一个常用的技巧,可以帮助我们更好地输出错误信息,快速定位问题。使用起来非常简单,只需要将标准输出重定向到标准错误上即可。希望这篇文章能够对大家有所帮助。