我制作了一个列出可用项目的脚本。你可以开始通过输入script start <project>
.
现在启用自动完成功能会很棒,因此如果您输入start Organ
并按TAB
,它会自动完成为start Organisation
。
困难的部分是项目列表是动态的。可用项目列表经常变化,并且所有用户都有不同的可用项目。
我的想法是将可用项目保存到 json 文件中,并使用该文件启用自动完成功能。我知道我必须在 中创建一个文件/etc/bash_completion.d/
,但我不知道如何实现取决于可用项目的“动态”自动完成。
答案1
假设您有一个名为 的脚本output_projects
,列出了所有可用的项目。现在从 bash 函数调用它:
_list_projects() {
./output_projects
}
现在将其绑定到start
我们的示例中,如下所示:
complete -F __list_projects start
基本上,每次按<tab>
bash 都会执行该函数并获得可用项目的新列表。
测试于:
$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
这解决了你的问题吗?如果不是,请重新表述并澄清您正在寻找的内容。