码迷,mamicode.com
首页 > 其他好文 > 详细

expect 自动化控制命令

时间:2015-08-27 13:00:22      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:

expect 的核心是 spawn expect send set

spawn 调用要执行的命令
expect 等待命令提示信息的出现,也就是捕捉用户输入的提示:
send 发送需要交互的值,替代了用户手动输入内容
set 设置变量值
interact 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。
expect eof 这个一定要加,与 spawn 对应表示捕获终端输出信息终止,类似于 if....endif

expect 脚本必须以 interact 或 expect eof 结束,执行自动化任务通常 expect eof 就够了。

设置 expect 永不超时
set timeout -1

设置 expect 300 秒超时,如果超过 300 没有 expect 内容出现,则退出
set timeout 300

例子: 自动登录远程服务器执行ifconfig命令

技术分享
#!/bin/bash
    passwd=Hello2014
    /usr/bin/expect <<-EOF
    set time 30
    spawn ssh root@192.168.126.131
    expect {
    "*yes/no" { send "yes\r"; exp_continue }
    "*password:" { send "$passwd\r" }
    }
    expect "*#"
    send "ifconfig\r"
    expect "*#"
    send "exit\r"
    interact
    expect eof
    EOF
Code

 

expect 自动化控制命令

标签:

原文地址:http://www.cnblogs.com/Mrhuangrui/p/4762787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!