我试过这个:
<tcl_interpreter> mytcl.tcl first {1 2 3 4 5 6}
我希望arg1成为“第一”,将arg2作为列表{1 2 3 4 5 6}。所以$ argc应该是2.但是$ argc给了我7并且{1 2 3 4 5 6}的每个元素被视为一个单独的参数。
答案 0 :(得分:1)
您需要使用引号而不是大括号。解释器不知道括号是指列表,因为它们表示Tcl中的列表。如果你想传递一个列表,你可以这样做:
<tcl_interpreter> mytcl.tcl first "1 2 3 4 5 6"
如果您的mytcl.tcl
中有这样的内容,则会打印3
:
[lindex [lindex $argv 1] 2]
请注意,使用"{1 2 3 4 5 6}"
会为脚本提供一个包含一个元素的列表,该元素本身就是一个包含6个元素的列表。
答案 1 :(得分:0)
知道了。只需将{1 2 3 4 5 6}放在引号内。所以:
<tcl_interpreter> mytcl.tcl first "{1 2 3 4 5 6}"
会产生我想要的东西。它会将{1 2 3 4 5 6}视为一个整数列表。