用于为命令创建循环的Shell脚本

时间:2016-12-27 07:13:53

标签: shell unix tcl ns2

所以我有一个需要在ns2中运行的tcl代码。众所周知,我只需要在终端输入'ns abc.tcl'。在我的abc.tcl代码中,我有一个变量x,我需要更改并运行代码。有没有办法我可以编写一个脚本来改变x的值并在终端运行'ns abc.tcl',然后再次更改该值并再次在终端运行'ns abc.tcl'为x的一组值。我相信我需要编写一个shell脚本,但我对此一无所知。你能告诉我我应该编写脚本的格式,比如我应该先编写什么,我在哪里编写x的值以及如何使它在终端运行'ns abc.tcl:'function()''do''完成'等等......如果你能指导我找到有用的具体链接。

1 个答案:

答案 0 :(得分:1)

提供它的最简单方法是将值作为参数传递。

  1. ns abc.tcl TheValueToPassIn调用您的代码。

  2. 通过使用argv索引lindex全局变量来访问代码中的值,该变量应包含脚本名称后面的所有参数的列表:

    set myValue [lindex $::argv 0]
    
  3. 但是,它可能不会起作用(取决于完全 ns程序的功能)。如果是这样,请在环境变量中传递值:

    1. MYVAR=TheValueToPassIn ns abc.tcl调用您的代码。

    2. 通过查看全局env数组:

      来访问代码中的值
      set myValue $::env(MYVAR)
      
    3. 还有很多其他方法可以做到,但这两种方法非常简单。