2017-10-18 21 views
0

私は "destination /"というフォルダを持ち、その中には実行可能なグレード1が含まれています。私の現在のディレクトリが「宛先/」シェルスクリプトで実行可能ファイルを実行するにはどうすればよいですか?

である私はそれを維持

for i in FILES/*; do ./grade1 $i done 

を実行しようとしている

./grade1 no such file or directory 

奇妙な部分は、私はちょうどラインを命令するコードをコピーしたときに、ということであると言いますそれを実行し、それは正常に動作します。問題は、私が

for i in FILES/*; do {FULL_PATH}/grade1 $i done 
+1

スクリプトはどのように実行されていますか?特に、実行されているスクリプトはどのような作業ディレクトリですか? –

+1

スクリプト内の 'for i in/path/to/FILES/*;のような完全なパスを記述してみてください。 do/path/to/grade1 $ i; done' – mathB

+0

foreachループ内で 'pwd'コマンドを呼び出して、あなたがどこにいるかを知ることができます。 ./grade1を実行すると、 –

答えて

0

一つの簡単な方法は、それを行う場合に発生しますあなたの現在の作業ディレクトリに、あなたが主張するように。私は、これも実行可能ファイルのアクセス許可を確認することを確認することをお勧めします。コードを

echo current directory is $PWD 
ls -l grade1 
for i in FILES/*; do ./grade1 $i done 

に拡張してください。これにより、問題の原因が明らかになるはずです。

0

が、私はグレード1 本当にがあるとは思わないシェルスクリプトでグレード1の実行可能ファイルのフルパスを使用して起動するかもしれません。この問題を解決する

関連する問題