一、安装
bash
expect命令不是系统自带,须要额外安装。安装方法:ssh
#yum install expectide
#which expectspa
/usr/bin/expect进程
二、语法it
#!/usr/bin/expect #声明解释器注意不是bashio
set timeout 2 #设置超时时间,超过2秒没有匹配到expect的值就退出class
set username [lindex $argv 0] #定义变量而且赋值为脚本的第一个参数变量
set password [lindex $argv 1] 语法
set hostname [lindex $argv 2]
spawn /usr/bin/ssh $username@$hostname #spawn 启动一个进程或者执行一条命令,后面的expect和send都是为他服务的
expect {
"yes/no"
{send "yes\r"; exp_continue;}
"Password:"
{send "$password\r";}
}
expect eof
说明:
当spawn建立的是一个链接,而不是执行一个单独的命令时须要使用expect eof结束进程,不然进程可能不会正常结束
当执行一个命令时 ,不能够带expect eof, 使用expect eof会报错,由于没有进程可以断开