绝大多数情况下的 CLI 应用都还是把正常的输出都输出到 stdout
也即标准输出
而错误信息, 调试信息和小部分 CLI 应用的帮助信息会输出到 stderr
即标准错误输出
你想不清楚到底应该处理 stdout
还是 stderr
时可以考虑干脆把 stderr
重定向到 stdout
, 就是这样:
/some_application 2>&1
有个细节要留意是一般来说 stdout
有行缓冲, stderr
则是逐字符的, 所以如果你采用重定向的方案, 而应用同时用到了这两个输出, 有可能 stderr
的文本会出现在 stdout
的前面
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…