我已经实现了一些perl脚本,在某些情况下我必须将一些命令行args传递到我的程序中。我已经决定在我的项目中添加一些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
时,应自动建议命令。
答案 0 :(得分:3)
我很确定你需要将它归入.bashrc
(基本上包含它)。
打开~/.bashrc
并写入(如果它不存在,您可能需要创建它)
source your_bash_file
然后,在您的终端中,通过
“刷新”source ~/.bashrc
它应该有用。
答案 1 :(得分:0)
上面的答案非常不便,特别是如果您有多个完成脚本并且有其他人安装和使用您的程序时。
d的更方便的方法是在/ etc等目录中创建一个包含所有完成脚本的文件夹,然后在.bashrc源文件中将该目录中的所有内容存储。