Expect交互自动化
Posted tongyishu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Expect交互自动化相关的知识,希望对你有一定的参考价值。
expect功能
Linux下运行命令、脚本或程序时,经常需要从终端输入某些命令继续运行的指令,这些输入都需要人为的手工干预。
expect可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。一般位于 /usr/bin/ecpect 。
expect 的四个命令:
send : 用于向进程发送字符串
expect : 从进程接收字符串
spawn : 启动一个新的进程
interact : 退出自动化,进入人工交互
ssh登录脚本示例:
#!/usr/bin/expect # 设置超时时间,单位为秒,默认情况下是10秒;-1不会超时 set timeout 30 # 设置主机IP、用户名及密码 set host "101.200.241.109" set username "root" set password "123456" # spawn是进入expect环境后才可以执行的expect内部命令,直接在shell下执行是找不到spawn命令的;它主要的功能是给ssh运行进程加个壳,用来传递交互指令 spawn ssh $username@$host # expect也是expect的一个内部命令,这个命令的意思是判断上次输出结果里是否包含“password”的字符串,如果有则立即返回;否则就等待一段时间后返回,这里等待时长就是前面设置的30秒 expect "*password*" {send "$password "} # 执行完成后保持交互状态,把控制权交给控制台,进行人工交互;如果没有这一句登录完成后会退出,而不是留在远程终端上 interact
以上是关于Expect交互自动化的主要内容,如果未能解决你的问题,请参考以下文章