#!/usr/bin/expect -f ##告诉解释器用expect来解释 set timeout 6 ##设置超时时间 set user [lindex $argv 0 ] ## 这个是传递给脚本的第一个参数,并把参数赋值给user set ip [lindex $argv 1] ## 这个是传递给脚本的第二个参数,依次类推 set passwd [lindex $argv 2] spawn ssh $user@$ip ##spawn的意思是执行这个命令 expect { ##expect是指期待获得什么值,如果多行,请用'{' "yes" { send "yes " ##如果是得到的字符串中有yes的话,就send也就是传入个'yes ' expect "assword" ##同理如果包含 'assword’ send "$passwd " ##就发送变量passwd的内容并换行 } "assword" {send "$passwd "} ##这个好理解了吧 } expect "]" ##单行的写法就很简单了 send "ls /home " send "exit" interact ##interact是指停留在交互的界面,如果没有它,执行完命令会回到原来的shell中