所以我有一个需要在ns2中运行的tcl代码。众所周知,我只需要在终端输入'ns abc.tcl'。在我的abc.tcl代码中,我有一个变量x,我需要更改并运行代码。有没有办法我可以编写一个脚本来改变x的值并在终端运行'ns abc.tcl',然后再次更改该值并再次在终端运行'ns abc.tcl'为x的一组值。我相信我需要编写一个shell脚本,但我对此一无所知。你能告诉我我应该编写脚本的格式,比如我应该先编写什么,我在哪里编写x的值以及如何使它在终端运行'ns abc.tcl:'function()''do''完成'等等......如果你能指导我找到有用的具体链接。
答案 0 :(得分:1)
提供它的最简单方法是将值作为参数传递。
以ns abc.tcl TheValueToPassIn
调用您的代码。
通过使用argv
索引lindex
全局变量来访问代码中的值,该变量应包含脚本名称后面的所有参数的列表:
set myValue [lindex $::argv 0]
但是,它可能不会起作用(取决于完全 ns
程序的功能)。如果是这样,请在环境变量中传递值:
以MYVAR=TheValueToPassIn ns abc.tcl
调用您的代码。
通过查看全局env
数组:
set myValue $::env(MYVAR)
还有很多其他方法可以做到,但这两种方法非常简单。