Ошибка Tcl # 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"
1 ответ
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"
Я не знаю, сработает ли это для вас, но, по крайней мере, мне это кажется нормальным.