📜  bash 回显到 stderr - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:59:29.058000             🧑  作者: Mango

Bash 回显到 stderr - Shell-Bash

在编写 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 是一个常用的技巧,可以帮助我们更好地输出错误信息,快速定位问题。使用起来非常简单,只需要将标准输出重定向到标准错误上即可。希望这篇文章能够对大家有所帮助。