我正在使用tcl / expect来测试以太网交换机。我想每2秒和后台重复运行一些测试工具。输出可以忽略。
那就是我想做以下事情: 有一个代码块一遍又一遍地重复以下代码,直到从另一个代码块停止:
exec { $myCommand }
sleep $sleepDuration
$ myCommand可以是列表或字符串,更方便。 $ sleepDuration是一个数字。
在另一段代码中,我将进行正常操作,包括产生进程并与它们交谈或与现有连接进行交互。
tcl有可能吗?我在VMWare中运行Debian Linux 6。代码不需要可移植到其他平台。
我尝试使用手表,但我不知道如何执行以下操作:
exec {watch $myCommand}
switch to an already connected process
interact with it
switch to watch
send "\x03"
答案 0 :(得分:2)
在最简单的情况下,命令快速运行,您使用every
模式:
proc every {delay script} {
uplevel #0 $script
after $delay [info level 0]
}
every 2000 {exec $yourCommand $yourArgument &}
然后,只要您为Tcl事件循环提供服务,该命令将每2秒运行一次(== 2000毫秒)。