我已经实现了一些Perl脚本,在某些情况下,我必须传递一些命令行参数到我的程序中。从可用性的Angular 来看,我已经决定添加一些bash completion script
到我的项目中。但现在我卡住了,在哪里把我的脚本工作的预期。请让我知道我可以把我的bash completion script
自定义Perl脚本位置
C:\scripts\tool\bin\ktools.pl
也将bin
path加入至系统变数。
我已将自动完成脚本放入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
时,命令应该自动建议。
3条答案
按热度按时间zysjyyx41#
我非常肯定您需要将其源代码导入到您的
.bashrc
中(基本上包括它)。打开
~/.bashrc
并写入(如果它不存在,您可能需要创建它)然后,在您的终端中,通过执行以下操作“刷新”
而且应该能成功。
5vf7fwbs2#
上面的答案是非常不方便的,特别是如果你有多个完成脚本,并有其他人安装和使用您的程序。
更方便的方法是创建一个文件夹,在/etc或类似文件夹中包含所有完成脚本,然后在.bashrc源代码中包含该目录中的所有内容。
p8ekf7hl3#
你是在Windows和你使用Bash,你应该告诉我们更多关于该设置之前,你得到次优建议。
下面是我在阅读了这个答案后,为Windows上的Git-Bash想到的:https://askubuntu.com/a/1188315/40581
将bash完成添加到Windows上的Git-Bash
您应该在安装
bash-completion
之后,将自订的完成字符加入$HOME/.local/share/bash-completion/completions
。以下是您的操作方式:1.从以下网址下载最新版本:https://github.com/scop/bash-completion/releases
1.打开git-bash并执行以下命令:
现在您已经准备好了基本组件和文件夹,下次打开新shell时将读取您完成的内容。
我今天做了这个和一些额外的脚本来从go二进制文件(比如kubectl)中提取完成符,以保持它们的更新,并且还从Git-Bash中的包中提取了一些与.exe扩展名一起工作的完成符,但是我更喜欢在代码更容易维护的存储库中发布这些完成符。