如何为含多空格的双词命令配置HISTIGNORE匹配规则?
HISTIGNORE 适配多空格的匹配方案
要让HISTIGNORE匹配word1和word2之间包含一个或多个空格的命令,需要借助Bash的**扩展通配符(extglob)**功能,具体操作如下:
开启extglob扩展
在Bash配置文件(如~/.bashrc或~/.bash_profile)中添加以下命令,确保每次终端启动都启用该扩展:shopt -s extglob修改HISTIGNORE规则
将原配置替换为支持多空格匹配的模式:HISTIGNORE="word1 +([[:space:]])word2*"+([[:space:]])是extglob语法,表示匹配一个或多个空白字符(包括空格、制表符等,若只想匹配空格可换成+( ))- 该规则会匹配所有以
word1开头,后跟一个或多个空格,再以word2开头的命令行
使配置生效
执行以下命令重载配置文件:source ~/.bashrc
如果不想启用extglob,也可以用一种妥协的临时方案(仅覆盖有限多空格场景):
HISTIGNORE="word1 word2*:word1 word2*:word1 word2*"
通过列举1个、2个、3个空格的情况来匹配,但无法覆盖所有可能的多空格场景,不推荐长期使用。
内容的提问来源于stack exchange,提问作者champion
相关产品推荐
相关产品推荐

