如何在tcl中打印argv?

如何在tcl中打印argv?,tcl,Tcl,我正在尝试在tclsh程序中打印argv。但以下方法不起作用。有人能告诉我在tcl中打印阵列的正确方法吗?谢谢 $ cat main.tcl #!/usr/bin/env tclsh puts {*}$argv $ ./main.tcl a b c bad argument "c": should be "nonewline" while executing "puts {*}$argv" (file ".

我正在尝试在tclsh程序中打印argv。但以下方法不起作用。有人能告诉我在tcl中打印阵列的正确方法吗?谢谢

$ cat main.tcl 
#!/usr/bin/env tclsh

puts {*}$argv
$ ./main.tcl a b c
bad argument "c": should be "nonewline"
    while executing
"puts {*}$argv"
    (file "./main.tcl" line 3)

在Tcl中,
argv
是一个列表。由于Tcl中的每个行为良好的值都有一个字符串表示形式,因此只要调用
put$argv
即可查看以空格分隔的单词显示的程序参数。

在Tcl中,
argv
是一个列表。由于Tcl中的每个行为良好的值都有一个字符串表示形式,因此调用
puts$argv
就足以查看以空格分隔的字显示的程序参数。

此外,
puts
只接受一个参数(可选通道或标志除外),看起来,
put
的选项创建了一条错误消息,虽然在技术上是正确的,但对解决问题没有多大帮助,也就是说,“坏参数”不会立即建议我找出
argv
的类型。在这种情况下,更新的8.5补丁版本有一条更有用的错误消息。该区域的错误报告已被重写近十年,因此生成此消息的代码已严重过时。此外,
put
仅接受一个参数(可选通道或标志除外)。不幸的是,
put
的选项似乎创建了错误消息,尽管技术上正确,没有提供太多帮助来解决问题,即“错误参数”不会立即建议我找出
argv
的类型。在这种情况下,更新的8.5补丁版本有一条更有用的错误消息。这方面的错误报告已经重写了将近十年,因此产生这条消息的代码已经严重过时。