Brauche Hilfe: Fehler in while Schleife

TCLV

Neuer User
Mitglied seit
4 Jul 2005
Beiträge
14
Punkte für Reaktionen
0
Punkte
0
Hallo!

Wenn ich folgende script über telnet eingebe funktioniert alles.

Code:

#!/bin/sh

while true
do
echo test >/var/tmp/test1.txt
date >> /var/tmp/test1.txt
done

Packe ich aber alles in eine Datei mit der Endung .sh und versuche diese zu starten kommt der Fehler:

Syntax error: end of file unexpected (expecting "do")

Kann mir jemand sagen woran das liegen könnte?

Gruß
TCLV
 
Wie editierst du die .sh Datei? Normalerweise sollte es klappen.

EDIT:
unter Windows hat der Zeilenumbruch zwei Zeichen. Bei Linux nur einen.
Das gibt manchmal solche Probleme....
 
Zuletzt bearbeitet:
Ich editiere mit Flashfxp, sollte unix conform sein. Hab damit auch noch nie Probleme gehabt.

Es liegt irgendwie an der Schleife. Wenn ich die Schleife rausnehme läuft der Script.

Ich möchte letztendlich das der Script sich alle 3 Minuten wiederholt (sleep 180). Gibt es da eine andere Möglichkeit als mit der while Schleife?

Gruß
TCLV
 
Einen goto Befehl kenn ich leider nicht. Kannst ja mal hier gucken:
http://www.tldp.org/LDP/abs/html/

Würd mich aber trotzdem interessieren, wie die Datei mit vi aussieht ;)
 
Hattest recht!

Hab das Script mal mit vi neu geschrieben. Läuft jezt ohne Fehler.

Ich Danke Dir für Deine Hilfe!!!

Gruß
TCLV
 
Die Eingaben per Shell-Command-Prompt und aus einer Datei werden verschieden interpretiert. Zeilenenden bei interaktiver Eingabe sind automatisch mit ";" versehen. Korrekt sollte Dein Script nämlich heissen
Code:
#! /bin/sh

while true; do
  echo test >/var/tmp/test1.txt
  date >> /var/tmp/test1.txt
done
Schau doch einfach nach der sh-Syntax für while.

Übrigens würde auch gehen
Code:
#! /bin/sh

while true; do
  (echo test ; date) > /var/tmp/test1.txt
done
wobei ich den Verdacht habe, daß Du nicht wirklich diese Endlosschleife so haben willst, sondern vor dem "done" noch zumindest ein "sleep 1" kommen sollte. ;-)

--gandalf.
 
Richtig, vor dem done kommt noch einiges mehr :)

Gruß
TCLV
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.