我有服务,比如说xyz。到目前为止,我可以分别使用命令rcxyz start、rcxyz stop和rcxyz restart启动、停止或重新启动该服务。它工作得很好。
我只想做的是,如果我键入rcxyz并按<TAB>,我希望有三个选项(开始、停止和重新启动)自动完成。
我在stackoverflow中提到了其他与bash庠completion相关的问题,并尝试编写了一个虚拟脚本

complete -c rcxyz

我希望当我输入rcxyz并按/etc/bash_completion.d/rcxyz.sh时,我将获得可用命令的列表作为参数。但没用。
我遗漏了什么吗?

最佳答案

你应该写:

complete -W 'start stop restart' rcxyz

参见bash手册:
-W字表
使用IFS中的字符拆分单词列表
作为分隔符的特殊变量,以及每个结果字
是扩展的。可能完成的是成员
与正在完成的单词匹配的结果列表的。

10-06 15:36