1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
_complete_ssh_hosts () { COMPREPLY=() cur=”${COMP_WORDS[COMP_CWORD]}” comp_ssh_hosts=`cat ~/.ssh/known_hosts | \ cut -f 1 -d ‘ ‘ | \ sed -e s/,.*//g | \ grep -v ^# | \ uniq | \ grep -v “\[” ; cat ~/.ssh/config | \ grep “^Host ” | \ awk ‘{print $2}’ ` COMPREPLY=( $(compgen -W “${comp_ssh_hosts}” — $cur)) return 0 } complete -F _complete_ssh_hosts ssh |