2013-10-28 2 views
2

Я новичок в ns3. У меня есть несколько простых программ, написанных на C++.

запуске программы NS3 по команде ниже

exec "`dirname "$0"`"/../../waf "[email protected]" 

Может кто-нибудь функцию упомянутой выше линии объяснить?

+0

Какая ошибка вы получаете? –

+0

@ Anders Lindahl вы можете объяснить «' dirname »$ 0" '" /../../ waf "$ @" line? –

ответ

4
dirname "$0" 

получает имя каталога файла, содержащего команду.

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

добавляет /../../waf к результату, полученному с помощью dirname "$0".

Так что вы получили /some/arbitray/path от предыдущей команды, заносить бы /some/arbitray/path/../../waf

exec "`dirname "$0"`"/../../waf "[email protected]" 

заменяет оболочку с командой, полученной выше, и передает аргументы, которые были переданы в скрипт, содержащий исходную команду.


В качестве примера, если ваша команда была в файле, содержащихся в директории /d1/d2/d3/d4/d5 и вы запускал его, говоря:

sh myfile foo bar "foo bar" 

, то команда выполняется будет:

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