/etc/hosts 映射name使用 tab 补全功能
通过中控机登陆对端服务器时,通过ssh ip方式有一个明显弊端:ip很难被记住,当ip数量庞大时,这是一个很麻烦的事情,我们可以通过/etc/hosts映射(ip HostName)来规避这个问题。同时,需要在登陆时,键入HostName 可以使用tab键补齐。下面内容详细的解决/etc/hosts 中映射名使用 tab 补齐问题。
编辑如下文件:/var/local/complete.sh
#!/bin/bash
### Complete Name When login
LHOST=`cat /etc/hosts | grep -E 'FSX' | awk '{print $2}'`
###匹配/etc/hosts中HostName映射关系
function test {
if [ "${#COMP_WORDS[@]}" != "2" ]; then
return
fi
local suggestions=($(compgen -W "$LHOST" -- "${COMP_WORDS[1]}"))
if [ "${#suggestions[@]}" == "1" ]; then
local number="${suggestions[0]/%\ */}"
COMPREPLY=("$number")
else
COMPREPLY=("${suggestions[@]}")
fi
}
complete -F test ssh
加入bashrc
source /var/local/complete.sh
echo "source /var/local/complete.sh" >> /root/.bashrc
测试:
ssh 后面的beijing-cmcc是直接用tab补齐的。