【问题标题】:Specifying two file extensions in bash complete在 bash 中指定两个文件扩展名完成
【发布时间】:2014-05-16 07:08:53
【问题描述】:

我正在尝试修改 bash 完整属性。

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

complete -f -X '*hi' vim

我想指定两个要排除的文件名。我该怎么做?

注意:以下命令不起作用。

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

【问题讨论】:

    标签: bash bash-completion


    【解决方案1】:

    一种方法是打开Extended Globs。在命令行运行它,或将其添加到您的 .bashrc 以使其永久化:

    shopt -s extglob
    

    现在,您的完整命令可能如下所示:

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

    引用patterns中的Extended Globs

    @(list): Matches one of the given patterns.
    

    【讨论】:

    • 我无法让它工作,尽管它与那里的所有其他示例相同。逐字粘贴和 bash 4.3.30 仍然可以完成 .o 文件。不过,在提供单个扩展名时效果很好。
    • 为此,必须安装bash-completion 包,并且可能通过/etc/bashrc 在您的~/.bashrc 中获取。但是我已经卸载了我的,因为它破坏了正确的expansion of environment variables,例如ls $DIR/somefil<tab>
    猜你喜欢
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    相关资源
    最近更新 更多