2016-05-02 1 views
-1

Я написал сценарий оболочки для запуска c исполняемого файла с аргументами.Выполнение C Исполняемый с аргументами как C Исполняемый из сценария оболочки

`HOME=/home/visitor/ 
PATH=. 
PATH=$PATH:$HOME/Application/Exec/ShellScripts 
PATH=$PATH:$HOME/Application/Exec/Utilities 
PATH=$PATH:$HOME/Application/Exec/Run 
export PATH 
Resour >> $LOGDIR/log.Resour  //Resour is an exe 
SetLogLevel 6      //SetLogLevel is an exe 
ExecCommand ProcessRealTime 1 1 ProcessRealTime >>$LOGDIR/log.ProcessRealTime 2>&1&` 

Однако на запуск этого скрипта, Resour и SetLogLevel ехе не работает должным образом, но ExecCommand Exe, который используется для запуска ProcessRealTime и сделать его запись в общей памяти показывает «execv: Нет такого файла или каталога» ,

Весь мой исполняемый файл находится под пуском $ HOME/Application/Exec/Run, который был экспортирован. Но когда я сделал следующие изменения, скрипт работал:

ExecCommand $ HOME/Application/Exec/RunProcessRealTime 1 1 ProcessRealTime >> $ LogDir/log.ProcessRealTime 2>

Может кто-то помогите мне запустить сценарий, не добавляя пути и не запуская команды напрямую, используя только экспортные инструкции.

+0

Как это связано с C? Тот факт, что исполняемый файл был написан на C, не означает, что C-тег здесь правильный. –

ответ

1

Переменная окружения PATH влияет только на оболочку. Вы должны реализовать свой собственный поиск путей, если используете execv или перейдите к execvp, который выполняет поиск в каталогах, упомянутых в PATH.

+0

Спасибо, решил! – chetan

Смежные вопросы