Syntax error : end of file unexpected (expecting "fi")
Schreibe ich ein makefile in der bash und ich habe ein Ziel, in dem ich versuche zu finden, ob eine Datei existiert, und obwohl ich denke, dass die syntax korrekt ist, habe ich noch gibt mir eine Fehlermeldung.
Hier ist das Skript, das ich versuche zu laufen
read:
if [ -e testFile] ; then \
cat testFile\
fi
Bin ich mit tabs, so dass ist nicht ein problem.
Den Fehler (wenn ich in: "Lesen")
if [ -e testFile] ; then \
cat testFile \
fi
/bin/sh: Syntax error: end of file unexpected (expecting "fi")
make: *** [read] Error 2
InformationsquelleAutor Jaelebi | 2009-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, ein Semikolon nach
cat testFile
. Zum Beispiel:alternativ:
Komisch. Ich versuchte es das erste mal mit Semikolon, und es hat nicht funktioniert. th zweiten mal ich lief es es gearbeitet.Dank
Nur eine Notiz an mich selbst: ursprünglich schrieb ich schlicht mehrzeilig
bash
- Anweisungen im makefile, und hatte die gleichen Fehler - und wie diese Antwort Noten, der trick besteht darin, das makefile erkennen der shell-Befehl als einzelne Zeile ein; daher bräuchte ich beide Semikolon;
(separate shell-Befehle) und backslash `\` (Flucht der anschließenden Zeilenvorschub), um es an die Arbeit... Cheers!InformationsquelleAutor jwa
Ich lief in das gleiche Problem. Dies sollte es tun:
InformationsquelleAutor honkaboy
Da GNU Make 3.82, können Sie hinzufügen
.ONESHELL:
an den Anfang der Datei zu sagen, machen alle Zeilen in ein Ziel in einer einzigen Schale.Sehen die Dokumentation.
Anfügen von Linien mit
@
oder fügen Sie die.SILENT:
option unter.ONESHELL:
zu unterdrücken echo-Zeilen.Behoben.
InformationsquelleAutor Evidlo
Traf ich auch dieses problem.
Und der Grund ist, dass ich einige Kommentare Hinzugefügt nach dem "\".
InformationsquelleAutor HackNone