对于 bash ,是否有一种简单的方法可以将完成功能嵌入到脚本中?
我有一个想要重新分发的脚本,但我不能要求人们在其中添加一些内容/etc/bash_completion.d
以便他们能够完成我的脚本...
答案1
主目录中没有 bash 补全的标准位置。您可以指示人们将您的完成代码复制到他们的 中.bashrc
,或者指示他们将您的完成定义脚本保存在某处(不应该在他们的$PATH
)并从他们的 中获取它.bashrc
。我推荐后者,因为它使升级更加容易。
. ~/.bash_completions/jmc_app
按照惯例,您的完成应该在与其完成的程序同名的脚本中定义,包含一个具有相同名称且前面带有下划线的函数定义,并调用complete
以安装完成:
# jmc_app completion
_jmc_app () {
…
}
complete -F _jmc_app jmc_app