我尝试运行以下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"
答案 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"
我不知道这是否对您有用,但至少对我来说理智。