Batch file 如何编写批处理文件以执行TCL文件
我是Linux(Ubuntu 12.10)的初学者。我想创建一个批处理文件来控制我的TCL文件,我想让我的TCL运行几次 例如,我希望批处理文件执行以下操作:Batch file 如何编写批处理文件以执行TCL文件,batch-file,tcl,ns2,Batch File,Tcl,Ns2,我是Linux(Ubuntu 12.10)的初学者。我想创建一个批处理文件来控制我的TCL文件,我想让我的TCL运行几次 例如,我希望批处理文件执行以下操作: for(i=1;i<100;i++){ sudo ns test.tcl $i } for(i=1;iUm,你确定你在写Tcl吗?这不是Tcl的语法。你可能要找的是: for {set i 1} {$i < 100} {incr i} { set ns [new Simulator] ....
for(i=1;i<100;i++){
sudo ns test.tcl $i
}
for(i=1;iUm,你确定你在写Tcl吗?这不是Tcl的语法。你可能要找的是:
for {set i 1} {$i < 100} {incr i} {
set ns [new Simulator]
....
....(my NS code)
....
$ns run
}
对于{set i 1}{$i<100}{incr i}{
设置ns[新模拟器]
....
..(我的NS代码)
....
$ns跑步
}
你在任何地方都使用大括号。我唯一能想到使用括号的是数组,但我认为我对Tcl的了解不够深入,无法确定这一点,而且你的开始条件、测试和下一个命令都在它们自己的大括号中,incr I
相当于I++
现在,new
不是Tcl中的内置函数。您是否在某处有一个名为new
的进程?如果没有,则会出现错误。a非常简单,它由多个命令组成,每个命令由一个命令名和多个参数组成。即使是控制结构也是命令。该命令需要4个参数参数:一个开始脚本、一个测试表达式、一个下一个脚本和一个主体脚本。与所有其他命令参数(和命令名)一样,您可以以任何方式引用
的参数,甚至可以对其中一些参数使用变量和其他替换,但通常在将它们发送到命令之前您不希望这样,因此您可以使用大括号:
for {set i 1} {$i < 100} {incr i} {
# ...
}
对于{set i 1}{$i<100}{incr i}{
# ...
}
我注意到的第一件事是表达式
for(i=1;i<100;i++){
这种方法的唯一缺点是您必须引入
Tclx
包,但是如果您的脚本已经使用了Tclx
,为什么不呢?Q:为什么您需要一个单独的(bash?)脚本?为什么不在TCL中完成整个过程(它本身就是一种非常好的脚本语言)?我试图在tcl文件中编写循环,但只运行了一次(当$I==1时),它没有运行$I==2~99。99次的问题是一个典型的“fencepost错误”;如果从0开始进行100次迭代,请对{set I 0}{$I<100}{incr I}…,如果从1开始,则对{set I 1}{$I使用
for {set i 1} {$i < 100} {incr i} {
set ns [new Simulator]
....
....(my NS code)
....
$ns run
}
for {set i 1} {$i < 100} {incr i} {
# ...
}
for(i=1;i<100;i++){
package require Tclx
loop i 0 100 {
# i will run from 0 to 99
}