在bash complete中指定两个文件扩展名

在bash complete中指定两个文件扩展名,bash,bash-completion,Bash,Bash Completion,我正在尝试修改bash complete属性 我可以排除命令的文件扩展名,因此: complete -f -X '*hi' vim 我想指定两个要排除的文件名。我该怎么做 注意:以下命令不起作用 complete -f -X '(*hi|*o)' vim 一种方法是打开扩展全局。在命令行中运行此命令,或将其添加到.bashrc以使其永久化: shopt -s extglob 现在,您的完整命令可以如下所示: complete -f -X '*.@(hi|o)' vim 从中的扩展全局引用

我正在尝试修改bash complete属性

我可以排除命令的文件扩展名,因此:

complete -f -X '*hi' vim
我想指定两个要排除的文件名。我该怎么做

注意:以下命令不起作用

complete -f -X '(*hi|*o)' vim

一种方法是打开扩展全局。在命令行中运行此命令,或将其添加到.bashrc以使其永久化:

shopt -s extglob
现在,您的完整命令可以如下所示:

complete -f -X '*.@(hi|o)' vim
从中的扩展全局引用:


我不能让它工作,尽管它和其他所有的例子一样。粘贴的verbatim和bash 4.3.30仍然完成
.o
文件。但是,在提供单个扩展时可以正常工作。要使其正常工作,必须安装
bash completion
软件包,并且可能通过
~/.bashrc
中的
/etc/bashrc
获取。然而,我已经卸载了我的,因为它坏了,比如
ls$DIR/somefil
@(list): Matches one of the given patterns.