我在tcl文件中遇到路径问题。我试着用
source " /tmp/mob.tcl "
和bash文件中的这个路径:
/opt/ns-allinone-2.35/ns-2.35/indep-utils/cmu-scen-gen/setdest/setdest -v 1 -n $n -p 10 -M 64 -t 100 -x 250 -y 250 >> /tmp/mob.tcl
终端给我这个输出:
..."
(procedure "source" line 8)
invoked from within
"source "/tmp/mob.tcl" "
(file "mobilita_source.tcl" line 125)
我怎么能这样做?
答案 0 :(得分:2)
首先,这个:
source " /tmp/mob.tcl "
不太可能是正确的。引号中文件名周围的空格会混淆source
命令。 (这可能是正确的,但只有当你目前的目录中有一个目录,其名称是一个空格。这真的不太可能,除非你比我更邪恶。)
如果你停止犯这个错误,这真的有很大帮助。
其次,错误消息都是
source
声称是一个程序(那条短线的第二行)。 法律制作一个名为source
的程序,有时候做的是正确的事情,但如果你正在做,那么你必须永远所以要小心复制标准Tcl命令的语义,否则会发生奇怪的事情。
第三,您有一个显然生成代码的文件,并且您在其中遇到问题,并且您没有告诉我们什么是在文件的第125行/附近(错误跟踪在前面非常清楚)或source
过程的内容(非标准;标准source
在C中实现)而且你期待我们猜出你出了什么问题?严重?
Tcl错误跟踪通常非常清楚,足以让您弄清楚出了什么问题以及在哪里。如果有不明确的错误,并且它没有来自用户代码(通过致电error
或return -code error
),请告知我们;我们会帮助(甚至可能改变Tcl以便将来更清楚)。但是现在,信息完全不足。
以下是正常source
错误的示例:
% source /tmp/foo/bar/boo
couldn't read file "/tmp/foo/bar/boo": no such file or directory
% puts $errorInfo
couldn't read file "/tmp/foo/bar/boo": no such file or directory
while executing
"source /tmp/foo/bar/boo"
如果脚本直接生成错误,则鼓励它尽可能清楚,但我们无法强制执行。有时候你必须自己成为一名侦探...