1,创建vim文本编辑器;
vim text.expect
2,编辑脚本内容
(1)#!/usr/bin/expect #约定标记,告诉系统该脚本使用的解析器
(2)set timeout 5 #设置超时时间,单位为秒,默认为10s
(3)set username [ lindex $argv 0]
set userip [lindex $argv 1] #设置变量,从0开始接收
(4)spawn ssh $username@$userip -p 22 #连接远程终端(-p 22可以不写)
#spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在shell下执行是找不到spawn命令的。这个就好比cd是shell的内建命令,离开shell,就无法执行cd一样。 它主要的功能是给ssh运行进程加个壳,用来传递交互指令。
(5)expect "password:" send "登录密码";
#expect等待输出中输出特定的字符,通常是一个提示符,如果等到了就使用send发送特定的响应
(6)interact
#执行完成上述命令后保持在交互状态,此时Expect会把控制权交给控制台,这个时候就变回手工操作,Expect已经执行完成。如果没有这一句登录完成后会立刻退出,而不是留在远程终端上。如果你只是登录过去执行一段命令就退出,可将其改为expect eof
3、退出并保存脚本
:wq!
4、更改为可执行文件
chmod u+x text.expect
5、执行脚本
./text.expect