在哪里放置 bash 个完成脚本

Where to put bash completion scripts

我已经实现了一些 perl 脚本,在某些情况下我必须将一些命令行参数传递到我的 program.Usability 透视图中我决定现在将一些 bash completion script 添加到我的 project.But 中我被困在把我的脚本放在哪里,因为 expected.Please 让我知道我可以把我的 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

当用户在命令行中键入 ktools -- + press tab 或 git bash.

时,应自动建议命令

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

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

source your_bash_file

然后,在您的终端中,"refresh"

source ~/.bashrc

它应该可以工作。

以上答案非常不方便,尤其是当您有多个完成脚本并且让其他人安装和使用您的程序时。

更方便的方法是在 /etc 或类似目录中创建一个包含所有完成脚本的文件夹,然后在 .bashrc 源中该目录中的所有内容。