exec“`dirname”$ 0“`”/../../ waf“$ @”

我是ns3的新手。 我有一些用c ++编写的简单程序。

我通过下面的命令运行我的ns3程序

exec "`dirname "$0"`"/../../waf "$@" 

任何人都可以解释上述线的function?

 dirname "$0" 

获取包含该命令的文件的目录名称。

 "`dirname "$0"`"/../../waf 

/../../waf追加到由dirname "$0"获得的结果中。

所以你从前面的命令获得/some/arbitray/path ,这将返回/some/arbitray/path/../../waf

 exec "`dirname "$0"`"/../../waf "$@" 

用上面获得的命令替换shell,并传递传递给包含原始命令的脚本的参数。


例如,如果你的命令是在一个包含在一个目录/d1/d2/d3/d4/d5中的文件中,并且你通过说:

 sh myfile foo bar "foo bar" 

那么正在执行的命令将是:

 /d1/d2/d3/d4/d5/../../waf foo bar "foo bar"