如何设置noclobber选项且避免控制台打印其已设置的提示信息
解决方案
正常执行shopt -o noclobber本身不会产生任何输出,你每次source配置看到的noclobber off提示,要么是你的bash版本的特殊输出行为,要么是你的.bashrc/全局shell配置中存在未注释的shopt、set -o无参数调用语句(这两个命令不带参数时会打印所有shell选项的状态列表)。
你可以通过两种方式解决:
- 优先排查配置文件:打开
~/.bashrc,搜索所有包含shopt、set -o的行,找到没有加参数直接打印选项列表的语句,将其注释或删除即可。 - 如果你找不到具体的打印来源,可以直接给你的noclobber配置增加输出重定向,吞掉所有可能的打印内容,修改后的代码如下:
# 防止标准输出重定向时覆盖文件 # 需强制覆盖时使用 `>|` 重定向即可 shopt -o noclobber >/dev/null 2>&1
修改完成后重新执行source ~/.bashrc验证,提示就会消失。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

