exec "`目录名 "$0"`"/../../waf "$@"

2 linux terminal ns-3

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

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

exec "`dirname "$0"`"/../../waf "$@"
Run Code Online (Sandbox Code Playgroud)

谁能解释一下上述线路的功能吗?

dev*_*ull 5

dirname "$0"
Run Code Online (Sandbox Code Playgroud)

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

"`dirname "$0"`"/../../waf
Run Code Online (Sandbox Code Playgroud)

附加/../../waf到 获得的结果dirname "$0"

/some/arbitray/path因此,如果您从上一个命令获得,这将返回/some/arbitray/path/../../waf

exec "`dirname "$0"`"/../../waf "$@"
Run Code Online (Sandbox Code Playgroud)

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


例如,如果您的命令位于目录中包含的文件中/d1/d2/d3/d4/d5,并且您通过以下命令执行它:

sh myfile foo bar "foo bar"
Run Code Online (Sandbox Code Playgroud)

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

/d1/d2/d3/d4/d5/../../waf foo bar "foo bar"
Run Code Online (Sandbox Code Playgroud)