免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2269 | 回复: 2
打印 上一主题 下一主题

新手学习Expect脚本,想循环一下,请高手除错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-26 11:21 |只看该作者 |倒序浏览
#!/usr/bin/expect -f

set force_conservative 0  ;# set to 1 to force conservative mode even if
                          ;# script wasn't run conservatively originally
if {$force_conservative} {
        set send_slow {1 .1}
        proc send {ignore arg} {
                sleep .1
                exp_send -s -- $arg
        }
}

#
#######
####省略描述文字
########

########
set done 1
while($done){
    set timeout -1
    spawn /bin/xrgsu
    match_max 100000
    expect -exact "Please input your user name:"
    send -- "123456789\r"
    expect -exact "Please input your password:"
    send -- "123456789\r"
    expect -exact "Use DHCP,1-Use,0-UnUse(Default: 0):"
    send -- "\r"
    expect -exact "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
    send -- "\r"
    expect -exact "Please input 'unauth' to LogOff:"
}
expect eof

在终端中运行出现下列错误

root@KK:~# /xrgsu.exp
invalid command name "while(1){"
    while executing
"while($done){"
    (file "/xrgsu.exp" line 32)

就是,我忘记加空格了,加上空格就可以正常认证了
我学校用锐捷认证上网,锐捷禁止电脑里有代理软件,不是我想做代理,只是不会卸载代理软件
所以我就想写个脚本,每次被断网之后自动循环再执行一次脚本,就重连上了
但是,这个脚本并没有循环阿,每次还是需要我按上,重新执行上一次到命令才能连接
怎么才能让它每当xrgsu进程(应该是这种条件吧)结束时再次执行这个脚本阿。


[ 本帖最后由 KK1987N 于 2009-12-26 12:02 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-12-26 11:34 |只看该作者
while     ( )   { }
要有空格....

论坛徽章:
0
3 [报告]
发表于 2009-12-26 11:39 |只看该作者

回复 #2 Celinde 的帖子

感谢,,就是需要空格
但是为什么它不循环阿
我使用锐捷认证登录,但是linux里好像有代理软件,锐捷禁止代理,所以2分钟断一下网
所以我就想做个循环,每次断开之后,自动再次执行脚本
要怎么写阿?
哥哥姐姐们帮帮我
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP