禁止 stderr 控制台输出,但在 Shell 中保留退出代码
Posted
技术标签:
【中文标题】禁止 stderr 控制台输出,但在 Shell 中保留退出代码【英文标题】:Suppress stderr console output but keep exit code in Shell 【发布时间】:2020-04-09 16:55:34 【问题描述】:有没有办法可以抑制 sdterr 的控制台输出但保留退出代码?
我做到了
#!/bin/sh
command 2> /dev/null
STATUS=$?
但这样一来,即使退出代码也被抑制(并变成0
)。
我希望在命令失败时无需集群控制台即可实现,除非启用了--verbose
标志,但它应该在命令失败时退出程序。
【问题讨论】:
【参考方案1】:没关系,这确实有效,我在脚本的其他地方出错了。
今天我还了解到,分配一个变量也算作一个“命令”,因此退出代码仍然是 0
【讨论】:
以上是关于禁止 stderr 控制台输出,但在 Shell 中保留退出代码的主要内容,如果未能解决你的问题,请参考以下文章
shell基础02 标准文件描述符STDIN,STDOUT,STDERR和输入输出重定向