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