Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成.
#!/usr/bin/expect
set user [lindex $argv 0 ] ####expect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第一个,第二个,第三个....参数
set ipaddress [lindex $argv 0 ]
set passwd [lindex $argv 1 ]
spawn ssh $user@$ipaddress
expect {
"yes/no" {send"yes\r";exp_continue} ###send会将expect脚本中需要的信息发送给spawn启动的那个进程,而send_user只是回显用户发出的信息,类似于shell中的echo而已。
"password:"{send"$passwd\r"}
}
interact #####执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。如果你只是登录过去执行 #######