2016-05-02 51 views
-1

引数で実行可能なc実行ファイルを実行するシェルスクリプトを作成しました。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 exeファイルが正常に実行されているが、共有メモリにProcessRealTimeを開始し、そのエントリを作成するために使用されてExecCommandエグゼは「EXECV:そのようなファイルやディレクトリはありません」と表示を。

すべての実行ファイルは、エクスポートされたパス$ HOME/Application/Exec/Runにあります。 しかし、私は次の変更をしたとき、スクリプトが働いた:

ExecCommand $ HOME /アプリケーション/ Execの/ RunProcessRealTime 1 1 ProcessRealTime >> $ LOGDIR/log.ProcessRealTime 2>

ことができる人パスを追加せずにスクリプトを実行して、エクスポートステートメントだけを使ってコマンドを直接実行してください。

+0

に移動する場合は、独自のパスルックアップを実装する必要があります。これはCとどのように関連していますか?実行可能ファイルがC言語で書かれているということは、ここでCタグが正しいことを意味するものではありません。 –

答えて

1

PATH環境変数はシェルにのみ影響します。 execvを使用するかexecvpに移動するPATH

+0

ありがとうございました! – chetan

関連する問題