传递bash数组以期待脚本

时间:2017-06-14 21:31:00

标签: arrays bash tcl expect

我有一个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到更好的期望,或者知道如何做到这一点?我认为它相对简单,但在某些方面对我非常不满。

1 个答案:

答案 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:~$