Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl:无效的命令名错误_Tcl_Ns2 - Fatal编程技术网

Tcl:无效的命令名错误

Tcl:无效的命令名错误,tcl,ns2,Tcl,Ns2,我的tcl代码中有这样一行代码: Application/BitTorrent set seqNo_ $opt(seqNo) …我有一个OTcl类名“Application/BitTorrent”,我得到这个错误 invalid command name "Application/BitTorrent" while executing "Application/BitTorrent set seqNo_ $opt(seqNo)" 无效的命令名“应用程序/BitTorrent” 执行时

我的tcl代码中有这样一行代码:

Application/BitTorrent set seqNo_ $opt(seqNo)
…我有一个OTcl类名“Application/BitTorrent”,我得到这个错误

invalid command name "Application/BitTorrent" while executing "Application/BitTorrent set seqNo_ $opt(seqNo)" 无效的命令名“应用程序/BitTorrent” 执行时 “应用程序/BitTorrent集序号$opt(序号)” 有人能告诉我错误在哪里吗


谢谢

我不想指出明显的错误,但错误正是消息所说的:在抛出错误时,没有名为“Application/BitTorrent”的命令


这可能意味着三件事之一:要么命令名拼写错误,要么命令尚未创建或已被销毁,要么它存在但在当前上下文中不可见(例如,它存在于其他未导入的命名空间或包或文件中)。

我不想指出明显的问题,但错误正是消息所说的:在抛出错误时,没有名为“Application/BitTorrent”的命令


这可能意味着以下三种情况之一:命令名拼写错误,命令尚未创建或已被销毁,或者命令存在但在当前上下文中不可见(例如,它存在于其他未导入的命名空间或包或文件中)。例如,您可能实际使用的是
/usr/bin/ns
,而不是在其中编译应用程序代码的应用程序(通常是
/ns all-in-one/bin/ns
)。要检查bash下是否存在这种情况,请使用

type ns

如果确实是这样的话,那么在
$PATH
中前面的那一个就意味着bash中的命令hash已经过时了。您可以使用
hash-dns
删除旧缓存。

除了Bryan Oakey指出的可能性之外,可能是您对脚本运行了一个错误的
ns
可执行文件副本。例如,您可能实际使用的是
/usr/bin/ns
,而不是在其中编译应用程序代码的应用程序(通常是
/ns all-in-one/bin/ns
)。要检查bash下是否存在这种情况,请使用

type ns

如果确实是这样的话,那么在
$PATH
中前面的那一个就意味着bash中的命令hash已经过时了。您可以使用
hash-dns
删除旧缓存。

感谢您的快速回复!您能告诉我在tcl中创建命令的基本语法吗?我实际上是tcl的新手。tcl中的命令是用proc创建的。您可以返回一个值(任何类型的Tcl变量)。您甚至可以通过定义具有相同名称和范围的proc来替换内置命令,因此请小心。谢谢您的快速回复!您能告诉我在tcl中创建命令的基本语法吗?我实际上是tcl的新手。tcl中的命令是用proc创建的。您可以返回一个值(任何类型的Tcl变量)。您甚至可以通过定义具有相同名称和作用域的proc来替换内置命令,因此请小心