前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >expect脚本中设置超时,比如下面的脚本

expect脚本中设置超时,比如下面的脚本

作者头像
拓荒者
发布2019-07-01 18:08:39
2.7K0
发布2019-07-01 18:08:39
举报
文章被收录于专栏:运维经验分享运维经验分享

文件expect_ssh_scp.sh #!/usr/bin/expect                                                                              #表示使用expect解释器 set timeout 10                                                                                  #设置超时限制为10秒 spawn ssh userName@hremote_host command                            #通过ssh连接远程主机执行命令 expect {                                                                                            #第一个expect语句      "(yes/no)" {send "yes\r";exp_continue}      "*assword:" {send "password\r"} } expect eof                                                                                       #指明命令交互结束 spawn scp source userName@hostName:dest                             #通过scp复制远程电脑的文件到本地 expect {                                                                                          #第二个expect语句 "(yes/no)" {send "yes\r";exp_continue} "*assword:" {send "password\r"} } expect 100% expect eof exit 我想知道这个超时10秒,是对所有的expect语句有效,还是只针对第一个啊? 如果超时限制对下面所有的expect语句都有效,比如下面的scp远程复制命令,如果数据没传输完,程序就超时了,那怎么解决呢? 那样的话expect 100%这句代码又有什么作用?? 我看到一种解释是:代码刚开始设定了timeout的时间为10秒,如果在执行scp任务时遇到了代码中没有指定的异常,则在等待10秒后该脚本的执行会自动终止。这样理解对吗? 干嘛要这个超时限制啊,感觉很影响程序的效率,在执行过程中遇见问题就返回问题信息,退出不就好了么,就算多给10秒,还不是没法解决。就好比Java中的异常处理机制,遇见异常就,throw  catch处理嘛,然后程序继续执行,这样多好, 如果某一个方法非常耗时,那么就等它执行完呗,就算有一天,出现无限循环这种永远的执行不完的方法,设定一个超时,这样的逻辑感觉不对吧,出现无穷循环的问题明显是设计的问题

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档