私はbashにmakefileを書いていますが、ファイルが存在するかどうかを調べようとするターゲットがあります。私にエラーを与えます。ここで 構文エラー:ファイルの終わりが予期しない( "fi"が予想される)
は、私はそれが問題ではありませんので、私はタブを使用していますread:
if [ -e testFile] ; then \
cat testFile\
fi
実行しようとしていますスクリプトです。
(私が入力したとき: "読み取り作る")にエラーがあるcat testFile
後にセミコロンを追加
if [ -e testFile] ; then \
cat testFile \
fi
/bin/sh: Syntax error: end of file unexpected (expecting "fi")
make: *** [read] Error 2
代替ソリューションが動作しますが、if..then構文を使用する必要があります。セミコロンを追加しても問題は解決しないようです。 – Jaelebi
奇妙な。私はセミコロンで初めてそれを試して、それは仕事をしなかった。私はそれを働かせました。ありがとうございました – Jaelebi
自分自身にちょうどメモ:私は元々makefileにプレーンな複数の 'bash'ステートメントを書いていて、同じ失敗を抱えていました - そして、この答えが示すように、トリックはmakefileを認識させることです単一の行としてのシェルコマンド。それゆえ、私は_both_セミコロン ';'(シェルコマンドを分けるために)_and_バックスラッシュ '\\'(後続の改行をエスケープする)が必要です。 – sdaau