写在前面:目前在公司,一个人一台虚拟机,大部分工作都要在虚拟机上完成,所以[sshxxx@xxxxxx]命令一天必须执行多次登录虚拟机;解决这个问题的方法有很多,比如使用xshell、secureCRT等工具记录常用连接,我写了一个简单的脚本实现一键登录~login.sh脚本内容如下:#!/usr/bin/expectspawnsshxxx@xxxxxxexpect"*password:"send"password\r"交互然后配置[./login.sh]alias别名,或者移动到可执行目录,即可实现[login]一键登录;expect是一条处理交互的指令。通过expect,我们可以把交互过程写成shell脚本,实现一些自动化操作~expect有四个核心指令:spawn:启动一个新进程,后面是新进程要执行的指令;expect:指定要监听的字符串,如果spawn进程返回匹配的字符串(比如标准输入的提示信息),则触发send;send:将指定的字符串发送给spawn进程,而不是标准输入;交互:用户参与交互;forlogin.sh的执行过程是:[spawn]启动一个新进程执行ssh登录命令,[expect]监听到符合匹配规则的标准输入提示信息“xxx@xxxxxx的密码”,触发[send]发送密码代替手动输入,完成登录,【交互】用户参与交互,此时已经登录虚拟机;使用expect还可以完成如:批量更新git代码库,自动登录FTP服务器等功能~仅供参考~