我有一个bash脚本,可以像这样调用一个expect脚本
$SCRIPTS_DIRECTORY/my_expect_script.sh $my_bash_array
我可以传递变量,看起来并使用它。
对于此示例,变量似乎位于[lindex $argv 0]
。
从bash开始,它将是一堆值,例如1 2 3 4 5
。
我试图找出如何使用expect来获取此变量,将其保存到数组然后循环遍历数组以一次一个地吐出多个命令。
所以我的输出应该是
send command 1 \r
send command 2 \r
等,直到它到达数组的末尾。
我想我会指定它像
array set myArray [lindex $argv 0]
但看起来我错了。
任何人都有任何好看的地方,我可以解释从bash到更好的期望,或者知道如何做到这一点?我认为它相对简单,但在某些方面对我非常不满。
答案 0 :(得分:2)
<强> Sample.sh 强>
my_array=(1 2 3 4 5)
expect sample.exp ${my_array[@]}
<强> Sample.exp 强>
foreach arg $argv {
puts "arg : $arg"
}
输出
dinesh@mypc:~$ ./sample.sh
arg : 1
arg : 2
arg : 3
arg : 4
arg : 5
dinesh@mypc:~$