Syntax error: word unexpected (expecting ")")

Direkte Linux-Programmierung, POSIX
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Syntax error: word unexpected (expecting ")")

Beitrag von cloidnerux » Mo Sep 14, 2009 3:22 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Mo Sep 14, 2009 5:36 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » Mo Sep 21, 2009 5:11 pm

cloidnerux hat geschrieben:

Code: Alles auswählen

	grub --batch << EOF
Wo ist das EOF in Deinem Makefile?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Mo Sep 21, 2009 7:41 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » Di Sep 22, 2009 7:14 am

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?
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Di Sep 22, 2009 2:46 pm

Nein.
Erlich gesagt weiß ich nicht was "EOF" ist, ich habe den Code aus einem anderen Makefile und da hat es so funktioniert.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

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

Beitrag von Xin » Di Sep 22, 2009 4:05 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Di Sep 22, 2009 4:23 pm

Ok, Danke.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

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

Beitrag von Kerli » Di Sep 22, 2009 5:29 pm

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 :) )
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Mi Sep 23, 2009 5:26 pm

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten