如何将数组作为参数传递给 TCL 脚本命令行运行?



我有脚本 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 

子崔

set arr1 [lindex $argv 0]
set arr2 [lindex $argv 1]
puts [array get arr1]
puts [array get arr2]

sub.tcl 脚本将数组参数视为变量,并且不会在输出时打印任何值。你能帮忙吗,如何在将数组作为命令行参数传递时指定数组。

要传递数组,我们应该使用array get <arrayname>.所以,你应该调用sub.tcl,因为

set res [exec tclsh.exe sub.tcl [array get arr1] [array get arr2]]

在 sub.tcl 中,直接将参数打印为

array set arr1 [lindex $argv 0]
array set arr2 [lindex $argv 1]
parray arr1
parray arr2

最新更新