在哪里放置 bash 完成脚本

gih*_*han 5 bash perl bash-completion

我已经实现了一些 perl 脚本,在某些情况下,我必须将一些命令行参数传递到我的程序中。可用性角度我决定将一些添加bash completion script到我的项目中。 .请让我知道我可以把我的bash completion script

自定义 Perl 脚本位置

C:\scripts\tool\bin\ktools.pl

还要添加bin系统变量的路径。

我已经把我的自动完成脚本放在

C:\scripts\tool\bin\etc\bash_completion.d\ktools\foo

Bash 完成脚本

_foo() 
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="--help --verbose --version"

    if [[ ${cur} == -* ]] ; then
        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
        return 0
    fi
}
complete -F _foo ktools
Run Code Online (Sandbox Code Playgroud)

当用户输入ktools -- + press tab命令行或 git bash时,应自动建议命令。

mat*_*001 5

我很确定你需要将它来源到你的.bashrc(基本上包括它)。

打开~/.bashrc并写入(如果它不存在,您可能需要创建它)

source your_bash_file
Run Code Online (Sandbox Code Playgroud)

然后,在您的终端中,通过执行“刷新”

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

它应该工作。