Expect脚本中的数组初始化

时间:2013-07-09 09:17:49

标签: shell

如何在expect-send脚本中初始化数组?我们可以使用初始化变量 设置Variable_name值。同样,如何在expect-send脚本中启动数组?

2 个答案:

答案 0 :(得分:2)

我假设你的意思是在关联数组中的数组,而不是在类似C的数字索引列表中的数组。您使用array set命令:

array set varname {key1 val1 key2 val2 key3 val3 ... ...}

由于大括号的内容不是通过Tcl评估的(因此可以预期),如果你想要它可以使它漂亮

array set varname {
    key1 val1
    key2 val2
    .... ....
}

您也可以直接分配数组元素:

set varname(key1) val1
set varname(key2) val2
...

答案 1 :(得分:1)

请注意,与用于设置变量的 set 不同,array set的工作方式不同:

在同一个tclsh:

% array set a {key1 val1 key2 val2}
% parray a
a(key1) = val1
a(key2) = val2

#This will not delete the content of the array:
% array set a {}
% parray a
a(key1) = val1
a(key2) = val2

#This will add new key-value pair:
% array set a {key3 val3}
% parray a
a(key1) = val1
a(key2) = val2
a(key3) = val3

#Array keys are unique:
% array set a {key1 val1 key2 val2}
% parray a
a(key1) = val1
a(key2) = val2
a(key3) = val3

#To unset the entire array content:
array unset a *

#To unset the array:
array unset a