expect 免交互脚本

目录

expect

要先安装 expect

制作免交互脚本

基本命令


expect

—— 是建立在 tcl(tool command language)语言基础上的一个工具,常被用于进行自动化控制和测试,解决 shell 脚本中交互的相关问题

要先安装 expect

rpm -q expect
​
rpm -q tcl
​
yum install -y expect

制作免交互脚本
#!/usr/bin/expect
spawn ssh 192.168.88.30
​
expect {
#捕捉关键字
   "yes/no" { send "yes\n";exp_continue }
#捕捉到第一个关键字 yes/no 如果有 yes/no 那么就发送 yes加回车  exp_continue继续捕捉
   "password" { send "123456\n" }
#捕捉到第二个关键字,就发送密码和回车
}
#expec eof
#捕捉结束,但是会返回原来的终端
interact
​

基本命令

1.脚本解释器

expect 脚本中首先引入文件,表明使用的事哪一种shell

#!/usr/bin/expect

2.spawn

spawn 后面通常跟一个Linux执行命令,表示开启一个会话、进程,并跟踪后续交互信息

后面加 命令

3.expect

判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回;只能捕捉有swpan启动的进程输出;

用于接受命令执行后的输出,然后和期望的字符串匹配

4.send

向进程发送字符串,用于模拟用户的输入:该命令不能自动回车换行,一般要加 \r (回车) 或者\ n

5.结束符

expect eof

表示交互结束,等待执行结束,退回到原用户,与spawn对应

6.set

expect 默认的超时时间是10秒,通过set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1

7.exp_continue

exp_continue 表示允许 expect 继续向下执行指令.

exp_continue附加于某个expect 判断选项之后,可以是该项被匹配后还能继续匹配expect 判断语句内的其他项。exp_continue类似于控制语句的continue语句。表示允许expect继续向下执行命令。

8.send_user

表示回显命令与echo相同
 

你可能感兴趣的:(linux)