我有脚本2脚本main.tcl和sub.tcl,在main.tcl中我创建了2个数组,我需要将它作为命令行参数传递给sub.tcl脚本。
Main.tcl:
set arr1(0) 100
set arr1(1) 200
set arr2(0) 300
set arr2(1) 400
set res [exec tclsh.exe sub.tcl arr1 arr2]
puts $res
sub.tcl
set arr1 [lindex $argv 0]
set arr2 [lindex $argv 1]
puts [array get arr1]
puts [array get arr2]
sub.tcl脚本将数组参数视为变量,并且不会在输出中打印任何值。请问请帮忙,如何在将数组作为命令行参数传递时指定数组。
答案 0 :(得分:0)
要传递数组,我们应该使用array get <arrayname>
。所以,你应该调用sub.tcl,如
set res [exec tclsh.exe sub.tcl [array get arr1] [array get arr2]]
在sub.tcl中,直接将args打印为
array set arr1 [lindex $argv 0]
array set arr2 [lindex $argv 1]
parray arr1
parray arr2