Standard Error 标准错误
程序输出错误信息的默认通道,简称 stderr。 Linux/Unix 文件描述符是 2。
为什么 stderr 跟 stdout 分开
让你能把”正常输出”和”错误信息”分别处理:
# 把正常输出存文件,错误打到屏幕
ls > out.txt 2>&1 # 都重定向到 out.txt
ls > out.txt 2>err.txt # 分别重定向
ls 2>/dev/null # 静音错误
ls > /dev/null # 静音正常输出如果两者混在一起,你 grep 输出时就找不准什么是结果什么是 warning。
跟 stdin、stdout 一组
安全场景
写脚本时遵循约定:
- 正常结果 → stdout(让管道使用)
- 报错 / 进度 → stderr(不污染管道)
很多新手脚本把所有东西都 echo 进 stdout,导致组合时各种 bug。