使用compgen获取另一个命令的自动完成,使用哪个标志?

时间:2015-05-29 18:55:49

标签: bash shell compgen

我有一个自定义的自动完成命令(称之为commandA

in commandB我想窃取commandA的第一个参数的自动完成选项

因此,例如commandA的argument1选项是:

abcdef abcabc abc123

我想要的东西是这样的 compgen -? "commandA"compgen -? "commandA abc"生成上面的列表。

1 个答案:

答案 0 :(得分:4)

您可以使用complete -p commandA找出要调用哪个函数来为该命令执行自定义完成。 (您需要查找-F选项的参数。如果还有其他选项,则会变得更复杂。)

然后,您需要设置标准完成环境变量(其名称以COMP_开头)并使用适当的参数调用该函数。它将填写COMPREPLY变量;如有必要,您可以添加其他可能性。有关详细信息,请参阅bash manual