2015-01-27 14:41:16 +00:00
|
|
|
#--------------------------------------------------------------------------------
|
|
|
|
# Add bash completion for ssh: it tries to complete the host to which you
|
|
|
|
# want to connect from the list of the ones contained in ~/.ssh/known_hosts
|
|
|
|
#--------------------------------------------------------------------------------
|
|
|
|
__ssh_known_hosts() {
|
|
|
|
if [[ -f ~/.ssh/known_hosts ]]; then
|
|
|
|
cut -d " " -f1 ~/.ssh/known_hosts | cut -d "," -f1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
_ssh() {
|
|
|
|
local cur known_hosts
|
|
|
|
COMPREPLY=()
|
|
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
|
|
known_hosts="$(__ssh_known_hosts)"
|
|
|
|
|
|
|
|
if [[ ! ${cur} == -* ]] ; then
|
|
|
|
COMPREPLY=( $(compgen -W "${known_hosts}" -- ${cur}) )
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2015-09-29 20:59:44 +01:00
|
|
|
for CMD in ssh scp telnet nc ftp ping curl; do
|
|
|
|
complete -o bashdefault -o default -o nospace -F _ssh ${CMD} 2>/dev/null \
|
|
|
|
|| complete -o default -o nospace -F _ssh ${CMD}
|
|
|
|
done
|
2015-01-27 14:41:16 +00:00
|
|
|
#--------------------------------------------------------------------------------
|