在哪里放置 bash 完成脚本

Posted

技术标签:

【中文标题】在哪里放置 bash 完成脚本【英文标题】:Where to put bash completion scripts 【发布时间】: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 时,应自动建议命令。

【问题讨论】:

metacpan.org/release/MooseX-App-Plugin-ZshCompletion 所以你使用的是Windows?不同平台的标准位置可能不同。 【参考方案1】:

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

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

source your_bash_file

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

source ~/.bashrc

它应该可以工作。

【讨论】:

我在哪里可以找到.bashrc 文件我在我的userhome 中搜索过,但有任何 如果你不能在windows中创建.bashrc***.com/questions/6883760/…【参考方案2】:

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

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

【讨论】:

以上是关于在哪里放置 bash 完成脚本的主要内容,如果未能解决你的问题,请参考以下文章

不确定在哪里放置 Scripts.Render for JQuery

inotifywait 未在 bash 脚本中执行 while 循环

bash 脚本

十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

将 bash 脚本添加到路径

Bash scripts