bashshellcompgen

Use compgen to get autocomplete for another command, which flag to use?


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.


Solution

  • 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.