unix - Tcl error wrong #args: 应该是“set varName ?newValue?”
问题描述
我尝试运行以下 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"
解决方案
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"
我不知道这是否对你有用,但至少在我看来它是理智的。
推荐阅读
- python - 我的模型主键如何以特定数字开头?
- internet-explorer-11 - IE11可以屏蔽cookie吗
- angularjs - 子状态路由的AngularJS ui路由器问题
- jakarta-ee - Logback+SLF4J 不登录 JavaEE 7 应用程序
- asp.net - 使用 c# 导出到 CSV 在移动手持设备中不起作用
- office-js - Outlook 未在 WebAddin 的 OfficeContext 中提供邮箱电子邮件 ID
- c# - httpclient 的异步等待执行顺序问题
- mysql - 如何通过 JDBC 连接 MySQL 和 google sheet
- docker-compose - docker swarm 上的 Hyperledger 作曲家
- json - sql server openrowset导入json文件性能