问题
I have a custom auto-completed command (call it commandA
)
in commandB
I want to steal the autocomplete options for the first argument to commandA
So, for example the options for argument1 for commandA are:
abcdef
abcabc
abc123
I would like something along the lines of
compgen -? "commandA"
or compgen -? "commandA abc"
to generate the list above.
回答1:
You can use complete -p commandA
to find out which function would be invoked to do custom completion for that command. (You need to look for the argument to the -F option. If there are other options, it becomes more complicated.)
You would then need to set up the standard completion environment variables (whose names start COMP_) and call that function with appropiate arguments. It will fill in the COMPREPLY variable; if necessary, you could then add other possibilities. See the bash manual for details.
来源:https://stackoverflow.com/questions/30537074/use-compgen-to-get-autocomplete-for-another-command-which-flag-to-use