Seite 1 von 2

Syntax error: word unexpected (expecting ")")

Verfasst: Mo Sep 14, 2009 3:22 pm
von cloidnerux
Ich habe gerade mein Makefile von Aeris ein wenig abgändert, sodass man beim Compilieren nicht manuell "device (fd0)..." eingeben muss, Dirty Oerty sollte das kennen.
Doch wenn ich das Makefile ausführen will, kommt die im Titel angezeigte Fehlermeldung.
Die betreffende Zeile sieht so aus:

Code: Alles auswählen

	grub --batch << EOF
-->device (fd0) aeris.img
	root (fd0)
	setup (fd0)
	quit
Der Code sollte funktionieren, da ich ihn aus einem anderen makefile habe, das ich auch schon unter dem selben Linux hab laufen lassen.
Danke für Antworten.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Mo Sep 14, 2009 5:36 pm
von cloidnerux
Problem behoben, habe den Teil mit dem grubaufruf in eine extra Dateigepckt und über sh make_grub aufgerufen.
Damit funktioniert das einrichten des Images komplett ohne zusätzliche Arbeit.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Mo Sep 21, 2009 5:11 pm
von Xin
cloidnerux hat geschrieben:

Code: Alles auswählen

	grub --batch << EOF
Wo ist das EOF in Deinem Makefile?

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Mo Sep 21, 2009 7:41 pm
von cloidnerux
Wo ist das EOF in Deinem Makefile?
Wie gesagt, Problem behoben, dieser Aufruf ist in einem makefile ungültig, nihct aber in einem Shellscipt, also diesen Befehl in eine Externe Shellcriptdatei gepackt und dann geht es.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Di Sep 22, 2009 7:14 am
von Xin
cloidnerux hat geschrieben:
Wo ist das EOF in Deinem Makefile?
Wie gesagt, Problem behoben, dieser Aufruf ist in einem makefile ungültig, nihct aber in einem Shellscipt, also diesen Befehl in eine Externe Shellcriptdatei gepackt und dann geht es.
Wie gesagt... gab es ein EOF in dem Makefile?

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Di Sep 22, 2009 2:46 pm
von cloidnerux
Nein.
Erlich gesagt weiß ich nicht was "EOF" ist, ich habe den Code aus einem anderen Makefile und da hat es so funktioniert.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Di Sep 22, 2009 4:05 pm
von Xin
cloidnerux hat geschrieben:Nein.
Erlich gesagt weiß ich nicht was "EOF" ist, ich habe den Code aus einem anderen Makefile und da hat es so funktioniert.
Ein Makefile enthält Teile von Shell-Skripten.

Unter der BaSh bedeutet das, dass alles bis zum einem Marker, der in Deinem Fall "EOF" heißt, an den Befehl als Standardeingabe übergeben wird.
Hast Du in Deinem Makefile kein EOF, dann ist es nicht verwunderlich, wenn das Skript durcheinander kommt.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Di Sep 22, 2009 4:23 pm
von cloidnerux
Ok, Danke.

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Di Sep 22, 2009 5:29 pm
von Kerli
So etwas nennt man übrigens auch "Here Document". Wo man dabei auch aufpassen sollte, ist wenn man ein Here Document einrückt. Dann muss man nämlich an das '<<' noch einen Bindestrich anhängen, also zb '<<-EOF', was bewirkt das Einrückungen ignoriert werden. Dabei werden aber nur Tabs ignoriert und keine Leerzeichen (Das ist mir nämlich unlängst passiert :) )

Re: Syntax error: word unexpected (expecting ")")

Verfasst: Mi Sep 23, 2009 5:26 pm
von cloidnerux
So, hba mir mla Kerlis Link angseschaut und das dementsprechend gestaltet:

Code: Alles auswählen

	grub --batch <<-EOF
	device (fd0) aeris.img
	root (fd0)
	setup (fd0)
	quit
	EOF
Doch es kommt immernoch der selbe Fehler, vor den einzelnen Zeilen sind Tabs, keine Leerzeichen.
Habe ich etwas übersehen oder worin besteht mein Fehler jezt.