shell之expect用法

1、安装

   expect命令不是系统自带,需要额外安装。安装方法:

  #yum install expect

  #which expect

    /usr/bin/expect

2、语法

  

#!/usr/bin/expect                                                #声明解释器注意不是bash

set timeout 2                                                       #设置超时时间,超过2秒没有匹配到expect的值就退出

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会报错,因为没有进程能够断开


猜你喜欢

转载自blog.51cto.com/9911287/2562495