写在前面:目前在公司是一人一台虚拟机,大多数工做都要在虚拟机上完成,为此天天要执行不少次【ssh xxx@xxxxxx】指令登陆虚拟机;有不少方式解决这个问题,如使用xshell、secureCRT等工具记录经常使用的链接,我就写了一个简单的脚本实现一键登陆~git
login.sh脚本内容以下:shell
#!/usr/bin/expect spawn ssh xxx@xxxxxx expect "*password:" send "密码\r" interact
再将【./login.sh】配置别名alias,或移动到可执行目录中,便可实现【login】一键登陆;服务器
expect是一个处理交互的指令,经过expect咱们能够把交互过程写到Shell脚本里以实现一些自动化操做~ssh
expect有四个核心的指令:工具
对于login.sh的执行过程为:
【spawn】启动一个新进程执行ssh登陆指令,【expect】监听到标准输入的提示信息『xxx@xxxxxx’s password』符合匹配规则,触发【send】发送密码代替手动输入,完成登陆,【interact】用户参与交互,此时已登陆上了虚拟机;spa
使用expect还能够完成如:批量更新git代码库、自动登陆FTP服务器等功能~FYI~code