Tcl错误错误#参数:应为“设置varName?newValue?”

时间:2018-07-03 12:30:53

标签: unix tcl vmd

我尝试运行以下Tcl脚本并收到错误:

wrong # args: should be "set varName ?newValue?"

这是什么意思?

注意:该脚本包含特定于VMD程序的术语

set dir plugins/noarch/tcl/vmdICE1.0 source $dir pkgIndex.tcl vmd_install_extension vmdICE xrmsdgui_tk_cb "Analysis/vmdICE"                                               

1 个答案:

答案 0 :(得分:0)

Tcl非常关心换行符。它像对待许多其他语言一样对待它们,就像对待命令分号一样。 (如果需要,您也可以在Tcl中使用分号,但这并不常见。)

因此,您的脚本:

set dir plugins/noarch/tcl/vmdICE1.0 source $dir pkgIndex.tcl vmd_install_extension vmdICE xrmsdgui_tk_cb "Analysis/vmdICE"                                               

绝对是错误的。它是命令set一个调用,其中太多的参数。如果我们在最可能的位置添加换行符,则会得到:

set dir plugins/noarch/tcl/vmdICE1.0
source $dir pkgIndex.tcl
vmd_install_extension vmdICE
xrmsdgui_tk_cb "Analysis/vmdICE"

现在这仍然是错误的,但是离正确的位置还很近。解决的最后一个关键点是使文件名正确为source

set dir plugins/noarch/tcl/vmdICE1.0
source $dir/pkgIndex.tcl
vmd_install_extension vmdICE
xrmsdgui_tk_cb "Analysis/vmdICE"

我不知道这是否对您有用,但至少对我来说理智。