我正在寻找是否有一种简单的方法来确定类似于下面的期望响应中是否存在已加载的变量。(注意 $sb 已关闭)
expect {
"some text\rsome text = $sb\rsome text = $sb\r# " {
id $sb
version
id $sb
thermometer $eFile
finish $eFile
}
"some text\rsome text = $sb\r# " {
id $sb
update
enum 2 $sb $eFile
}
}
正如您可能想象的那样,这只是脚本的一部分,if 中的所有调用都是 proc。我希望能够拥有与此类似的东西,而不是必须手动创建足够的响应来处理响应的变体。结果将与此类似,只是跟踪时间更长,更痛苦:
expect {
"some text\rsome text = 2\rsome text = 2\r# " {
if { $sb == 2 } {
id $sb
version
id $sb
thermometer $eFile
finish $eFile
} else {
assign $sb $eFile
enum 1 $sb $eFile
}
}
"some text\rsome text = 3\r# " {
if { $sb == 3 } {
id $sb
update
enum 2 $sb $eFile
} else {
assign $sb $eFile
enum 1 $sb $eFile
}
}
}
'some text' 响应是相同的,因此至少可以说通过修剪进行过滤很有趣。我已经建立了大部分,但如果可以的话,我想避免它。此外,对于 2/3 显示,它们可以切换,因此具有 2 个变量的响应可以具有 3,具有 1 个变量的响应也可以具有 2,因此很明显这可能会很快变大。