文档章节

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

l
 linjin200
发布于 06/26 10:15
字数 562
阅读 48
收藏 0

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


文件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处理嘛,然后程序继续执行,这样多好,

如果某一个方法非常耗时,那么就等它执行完呗,就算有一天,出现无限循环这种永远的执行不完的方法,设定一个超时,这样的逻辑感觉不对吧,出现无穷循环的问题明显是设计的问题

厂家直销特大码男鞋新款皮鞋正装韩版男士休闲皮鞋男鞋商务鞋代发

© 著作权归作者所有

l

linjin200

粉丝 23
博文 823
码字总数 914726
作品 0
福州
程序员
私信 提问
Java调用Shell引出的效率和完整性

首先看一段shell代码,下面的代码,用于Linux shell从远处电脑复制文件回本地电脑 文件expect_ssh_scp.sh #!/usr/bin/expect #表示使用expect解释器 set timeout 100 #设置下面的每一个expec...

HelloWorlddd
2016/08/11
693
0
linux 远程自动化部署

#!/usr/bin/expect -f set timeout 60set f [open ./ip r]while { [gets $f line ] >=0 } { set ip [lindex $line 0] #echo "开始启动$ip的服务" spawn scp push.war jeeker@$ip:/home/jeeke......

kongjun
2016/01/08
844
2
Linux运维学习知识点之Expect解析 Linux周末学习

Expect中的特殊关键字用于匹配过程,代表某些特殊含义或状态,一般用于 expect 族命令中而不能在外面单独使用,也可以理解为事件,使用上类似于: expect eof { } 一、eof eof(end-of-file...

老男孩Linux培训
2018/06/29
1
1
第十二章 Shell脚本编写及常见面试题(三)

本章目录: 12.21 FTP下载文件 #!/bin/bashif [ $# -ne 1 ]; then echo "Usage: $0 filename"fidir=$(dirname $1)file=$(basename $1)ftp -n -v << EOF # -n 自动登录open 192.168.1.10user......

李振良OK
2018/06/26
0
0
linux expect案例用法

EXPECT 用法 expect是基于TCL的相对简单的一个免费脚本编程工具语言,用来实现自动和交互式任务进行通信,无需人的 手工干预,比如sshFTP等,这些程序正常情况都需要手工与它们进行交互,而使...

jiaohuanji88
2018/07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
2
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
7
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
8
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
2
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部