2016-09-22 15 views
7

私のような簡単なスクリプトを作っランPHP:私はこのようなルートとして、それを実行すると</p> <pre><code>#!/bin/bash php /var/www/mysite/script1.php php /var/www/mysite/script2.php </code></pre> <p>:エラー「をオープンできませんでした入力ファイル」

bash update.sh 

私が手次のエラーが発生しました:

Could not open input file: /var/www/mysite/script1.php 
Could not open input file: /var/www/mysite/script2.php 

何が問題なのですか。私は私のPHPファイルとすべてのフォルダにアクセスするためにアクセス許可777で試しました。コマンドラインでphp /var/www/mysite/script1.phpを直接実行するとうまく動作します。

+0

を使用するようにしてください: ' sudo bash update.sh'は何が起こるか見ることができます。 – d3r1ck

+0

それは同じです... – sylvain1264

+0

あなたは手動で 'php'コマンドを実行するのと同じ方法でbashスクリプトを実行していますか? Webサービスなどでそれらの1つを実行している場合は、パスが異なる可能性があります。 –

答えて

4

バッチファイルは、いくつかのウィンドウ準拠エディタまたは他の事故を通過するとき、(単に改行前)はキャリッジリターン文字は、行の末尾に追加され

が起こることができるが、例えばので、すべての行この1:

php /var/www/mysite/script1.php 

は、引数PY php/var/www/mysite/script1.php<invisible char>が見つからない=>ファイルの一部として解釈される目に見えない\r文字が含まれています。

次の操作を行います

dos2unix update.sh > newbatchfile.sh 

または

tr -d "\015" <update.sh> newbatchfile.sh 

(newbatchfileが小さい場合は、ファイルサイズを比較し、問題はCRの文字だったと固定)

関連する問題