[gelöst] End of file für bash

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

[gelöst] End of file für bash

Beitrag von Elektrolurch »

Hallo All

Ich habe mal eine Frage die eigentlich nur am Rande mit PB zu tun hat.
Ich generiere mit OpenFile übers Netzwerk eine Linux Bash.
Dann starte ich über meinen gebastelten Telnet-Client die Bash.
Leider erhalte ich die Fehlermeldung:

Code: Alles auswählen

IRadio.sh: line 18: syntax error: unexpected end of file.
Meine Recherche ergab, dass es wohl daran liegt, dass die Datei mit einem Windowssystem erstellt wird.
Gibt es dazu eine Lösung.
Ein richtiges EndOfFile würde schon genügen.

Danke schon Mal

Bye Andre
Zuletzt geändert von Elektrolurch am 19.02.2009 18:00, insgesamt 3-mal geändert.
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi All

Hat keiner, nicht die kleinste Idee? :o

Wäre mit jedem Krümelchen glücklich.

Bye Andre
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: End of file für bash

Beitrag von Kiffi »

Elektrolurch hat geschrieben:Ein richtiges EndOfFile würde schon genügen.
EOF wir meines (Halb-)Wissens durch Hex 1A gekennzeichnet.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi

Das ganze liegt wohl nicht ganz so einfach.

Als Beispiel generierte ich folgende Bash

Code: Alles auswählen

#!/bin/sh 
FILE=/opt/Fidelio/bin/pizarro 

if [ -r ${FILE}.orig ]; 
then 
  echo "${FILE}.orig already exists: exiting" 
  exit 
fi 

echo "Done"
Wenn ich die If-Schleife auskomentiere läuft die Bash.
Mit kommt wieder der Fehler

Code: Alles auswählen

 syntax error: unexpected end of file.
Schreibe ich die Bash mit dem Editor Joe läuft auch die IF-Schleife.

Irgendwie stehe ich da auf dem Schlauch.
Hat noch jemand eine Idee?

Bye Andre
Little John

Re: End of file für bash

Beitrag von Little John »

Elektrolurch hat geschrieben:Meine Recherche ergab, dass es wohl daran liegt, dass die Datei mit einem Windowssystem erstellt wird.
Ich nehme an, das Windowssystem schreibt als Zeilenumbrüche CRLF in die Datei. Der Editor Joe wird stattdessen sicherlich -- wenn es ein Linux-Editor ist -- LF benutzen.
Leider kenne ich mich mit Bash files nicht aus, aber kann es sein dass Linux es nicht verträgt, wenn dort CRLF für Zeilenumbrüche verwendet wird?

Gruß, Little John
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi Little John

Ich habe mal das

Code: Alles auswählen

WriteStringN(0," #!/bin/sh")
in

Code: Alles auswählen

WriteString(0," #!/bin/sh"+Chr(10))
geändert. Somit abe ich das CRLF entfernt und ein manuelles LF eingefügt.

aber leider wieder Pech

Code: Alles auswählen

line 8: syntax error: unexpected end of file 
trotzdem Danke

Bye Andre
Benutzeravatar
Elektrolurch
Beiträge: 168
Registriert: 11.10.2007 16:48
Wohnort: 49°26'51.46"N - 8°59'49.06"E
Kontaktdaten:

Beitrag von Elektrolurch »

Hi all

Little John war schon auf dem richigen Weg
LF alleine hat nicht gereicht.

Code: Alles auswählen

WriteString(0," #!/bin/sh"+Chr(10),#PB_Ascii) 
Mit der Erweiterung LF = CHR(10) + #PB_Ascii läuft es.

Danke an all die sich den Kopf zerbrochen haben.

Bye Andre
Little John

Beitrag von Little John »

Das ist interessant. Danke fürs posten der "Auflösung".

Gruß, Little John
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Elektrolurch hat geschrieben:LF alleine hat nicht gereicht.

Code: Alles auswählen

WriteString(0," #!/bin/sh"+Chr(10),#PB_Ascii) 
Mit der Erweiterung LF = CHR(10) + #PB_Ascii läuft es.
.... also ist dein Erzeuger eine Unicode-Exe...
wenn du ne ANSI-Exe nimmst, müßte es auch ohne das Flag funktionieren...
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

bash scripte brauchen am ende ein returnzeichen. ( wird als end of file interpretiert ).
"...smoking hash-tables until until you run out of memory." :P
Antworten