How can I setup bash completion for the unset command, like when you use echo $XXX, you can get a completion for XXX?

  • It seems to work already. – enzotib Dec 31 '11 at 13:22
  • @enzotib really ? i tried unset TM<tab> and nothing appears , but unset $TM<tab> , which is not the case ... – daisy Dec 31 '11 at 13:55
  • It probably works already with the bash completion package from caliban.org/bash/#completion_download installed. (On Fedora or with EPEL, yum install bash-completion.) – mattdm Dec 31 '11 at 15:10

You need to turn on bash's programmable completion system. There's a file called bash_completion distributed with bash that you must include from your .bashrc. On typical distributions, put this in ~/.bashrc:

. /etc/bash.completion

If this file is not present on your system, it may be in a separate package from the main bash executable, e.g. bash-completion on Debian.

If you specifically want completion for the unset command, that's

complete -v unset

On my Ubuntu/Bash system:

TM1=A; TM2=B
unset TM<ESC><*>
 => unset TM1 TM2  (expands in the command line)  

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.