【问题标题】:Where to put bash completion scripts在哪里放置 bash 完成脚本
【发布时间】:2017-12-20 06:43:54
【问题描述】:

我已经实现了一些 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

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

【问题讨论】:

标签: bash perl bash-completion


【解决方案1】:

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

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

source your_bash_file

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

source ~/.bashrc

它应该可以工作。

【讨论】:

【解决方案2】:

上面的答案非常不方便,特别是如果您有多个完成脚本并且有其他人安装和使用您的程序。

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

【讨论】:

    猜你喜欢
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 2015-06-29
    • 2011-06-30
    • 1970-01-01
    • 2018-08-23
    • 2014-11-11
    相关资源
    最近更新 更多