使用 compgen 获取另一个命令的自动完成功能,使用哪个标志?
Use compgen to get autocomplete for another command, which flag to use?
我有一个自定义的自动完成命令(称之为 commandA
)
in commandB
我想窃取 commandA
第一个参数的自动完成选项
因此,例如,命令 A 的参数 1 的选项是:
abcdef
abcabc
abc123
我想要类似的东西
compgen -? "commandA"
或 compgen -? "commandA abc"
生成上面的列表。
您可以使用 complete -p commandA
找出将调用哪个函数来为该命令执行自定义完成。 (你需要寻找-F选项的参数,如果有其他选项,那就更复杂了。)
然后您需要设置标准的完成环境变量(其名称以 COMP_ 开头)并使用适当的参数调用该函数。它将填写 COMPREPLY 变量;如有必要,您可以添加其他可能性。详情见bash manual。
我有一个自定义的自动完成命令(称之为 commandA
)
in commandB
我想窃取 commandA
因此,例如,命令 A 的参数 1 的选项是:
abcdef
abcabc
abc123
我想要类似的东西
compgen -? "commandA"
或 compgen -? "commandA abc"
生成上面的列表。
您可以使用 complete -p commandA
找出将调用哪个函数来为该命令执行自定义完成。 (你需要寻找-F选项的参数,如果有其他选项,那就更复杂了。)
然后您需要设置标准的完成环境变量(其名称以 COMP_ 开头)并使用适当的参数调用该函数。它将填写 COMPREPLY 变量;如有必要,您可以添加其他可能性。详情见bash manual。