shell之expect用法

一、安装
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会报错,由于没有进程可以断开

相关文章
相关标签/搜索