exp_continue 匹配多个字符串在执行动作后加此命令 expect最常用的语法(tcl语言:模式-动作) 单一分支模式语法: 1 expect “hi” {send “You said hi\n"} 匹配到hi后,会输出“you said hi”,并换行 多分支模式语法: 1 2 3 expect "hi" { send "You said hi\n" } \ "hehe" { send "Hehe...
expect { "(yes/no)" {send "yes\r"; exp_continue;} "*password" {set timeout 300; send "abc123\r";} } 1. 2. 3. 4. 注意:使用exp_continue时,如果跟踪像 passwd 这样的输入密码后就结束进程的命令,expect{}外不要再加上expect eof 因为spawn进程结束后会向expect发送eof,会导致后面的 expect...
exp_continue 在expect中多次匹配就需要用到 send_user 用来打印输出 相当于shell中的echo interact 允许用户交互 exit退出expect脚本 eof expect执行结束, 退出 set定义变量 puts 输出变量 settimeout 设置超时时间 Expect中最关键的四个命令是send,expect,spawn,interact。 简单的用法,稍作修改就可以变成很实用都脚本。
4. expect { 5. "yes/no" { send "yes\r";exp_continue } 6. "password:" { send "666666\r" }; 7. } 8. interact 解释 spawn expect内部命令,启动一个shell程序。 expect 期望哪些内容 yes/no 就send发送 yes ,\r 表示回车 password 就send发送 centos exp_continue,跳过循环,就继续下一条语句。
exp_continue 匹配多个字符串在执行动作后加此命令 3.安装expect软件包 [root@node101.yinzhengjie.org.cn ~]# yum info expect Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * epel: mirrors.aliyun.com ...
exp_continue :使用条件比较苛刻,首先它要处于一个expect命令中,然后属于一种动作,没有exp_continue会依次向下匹配多个条件,添加 exp_continue后每次的匹配都是有第一个关键词开始。(参考下方实例) 7) send_user send_user:用于把参数输出到标准输出中,默认send、exp_send命令都是将参数输出到程序中。
exp_continue 允许expect继续向下执行指令 send_user 回显命令,相当于echo 流程: spawn 启动追踪 —> expect 匹配捕捉关键字 ——> 捕捉到将触发send 代替人为输入指令—> interact /expect eof $argv参数数组 Expect脚本可以接受从bash传递的参数,可以使用 [lindexargvn]获得,n从0开始,分别表示第一个1,第二个2...
exp_continue [-continue_timer]:继续执行下面的匹配。 exp_internal [-f file] value: expect范例 自动telnet会话 #!/usr/bin/expect -f set ip [lindex $argv 0 ] # 接收第1个参数,作为IP set userid [lindex $argv 1 ] # 接收第2个参数,作为userid ...
spawn ssh $loginUser@$serverHost expect { "*yes/no*" { send "yes\n";exp_continue} "*password*" { send $loginPassword; send "\r" } } # 交互式执行 interact 三、expect 脚本怎么用 一般linux 操作系统自带 expect 工具,如果没有则安装一下 ...
"*yes/no" { send "yes\r"; exp_continue} //第一次ssh连接会提示yes/no,继续 "*password:" { send "$password\r" } //出现密码提示,发送密码 } interact //交互模式,用户会停留在远程服务器上面. 运行结果如下: root@ubuntu:/home/zhangy# ./test.exp 192.168.1.130 admin ...