![为什么 bash 有时只从历史记录中读取 # 注释的命令](https://linux22.com/image/226680/%E4%B8%BA%E4%BB%80%E4%B9%88%20bash%20%E6%9C%89%E6%97%B6%E5%8F%AA%E4%BB%8E%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E4%B8%AD%E8%AF%BB%E5%8F%96%20%23%20%E6%B3%A8%E9%87%8A%E7%9A%84%E5%91%BD%E4%BB%A4.png)
在我的 Arch Linux 机器 (5.2.15) 上,使用箭头键进行历史导航可以看到~/.bash_history
以字符开头的命令#
。
在我的 Mac OS 计算机(bash 3.2.57)上,使用箭头键进行历史导航时看不到以~/.bash_history
该#
字符开头的命令。
内置history
函数具有相同的行为:它在 Arch 机器上看到这些命令,但在 OS X 上看不到。运行history -r
不会导致注释命令显示,尽管我可以在~/.bash_history
.
是什么导致了这种行为差异?如何在 Mac OS 上配置 bash,使其表现得像在 Arch Linux 上一样(以便我看到注释的历史条目)?
两台机器的 bash 配置非常相似:
苹果系统:
$ shopt -p | grep hist
shopt -s cmdhist
shopt -s histappend
shopt -u histreedit
shopt -u histverify
shopt -u lithist
$ echo $HISTCONTROL
ignorespace
拱:
$ shopt | grep hist
cmdhist on
histappend on
histreedit off
histverify off
lithist off
$ echo $HISTCONTROL
ignorespace