shell编程回顾----Expect免交互基础理论+实操

前言:

expect是一款自动化的脚本解释型的工具。

expect基于tcl脚本,expect脚本的运行需要tcl的支持。

expect对一些需要交互输入的命令很有帮助,比如ssh ftp scp telnet。

远程登录linux服务器的时候,ssh命令需要手工输入密码,当登录多台机器的时候就会非常繁琐。

expect就可以根据设定的规则,自动帮我们输入密码,大大节省了时间。

一、Expect 基本命令
1.1 Expect 流程命令
  • ① send 命令:向进程发送字符串,用于模拟用户的输入,且该命令不能自动回车换行,一般需要加\r(回车)
  • ② expect命令:一个内部命令,判断上次输出结果里是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回。此外,只能捕捉由spawn启动的进程的输出
  • ③ spawn命令:启动进程,并且跟踪后续交互信息
  • ④ interact命令:执行完成后保持交互交互状态,把控制权交给控制台
1.2 Expect 内容命令
  • ① timeout命令:指定超时时间,过期则继续执行后续指令,单位是:秒。timeout -1表示永不超时。默认情况下,timeout是10秒
  • ② exp_continue命令:允许expect继续向下执行指令
  • ③ send_user命令:回显命令,相当于echo

1.3 Expect 其他命令

  • ① $argv 参数数组:expect脚本可以接受从bash传递的参数,可以使用[lindex $argv n] 获得,n从0开始,分别表示第一个、第二个、第三个……参数
    • arg :参数
    • argv[]:value,存放各参数
    • argc:外部命令,参数个数
  • ② expect脚本必须以interact或者expect eof结束,执行自动化任务通常expect eof就足够了
  • ③ expect eof是在等待结束标志,由spawn启动的命令在结束时会产生一个eof标记,expect epf即在等待这个标记
二、Expect的执行方式
2.1 Expect语法
  • Expect语法分为:单一分支模式语法、多分支模式语法
  • ① 单一分支模式语法:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值