Bestimmten Befehl ausführen, bis kein Fehlercode auftritt?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
wow
Beiträge: 124
Registriert: 29.01.2004 17:17:17
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: 12355 Berlin

Bestimmten Befehl ausführen, bis kein Fehlercode auftritt?

Beitrag von wow » 27.09.2008 01:29:54

Hallo,

ich beabsichtige folgendes:

Die Analyse von Zuständen diverser Drucker wird zu einem bestimmten Zeitpunkt sequentiell abgespeichert. Wenn die Datei fertig gespeichert ist, wird sie mit einem Mail Script per Attachment zur Auswertung versandt. Nun kann das Fertigstellen der Datei je nach Auslastung des Systems einiges dauern. Deshalb möchte ich -jetzt kommt mein eigentliches Problem- die Originaldatei in eine temporäre Datei kopieren. Nach bspw. 5 Min wird ein diff durchgeführt. Sendet diff einen Errorcode, soll ein weiteres Sleep von bspw. 10 Minuten erfolgen. Anschließend wird die Origianldatei so lange wieder in eine temporöre Datei kopiert und anschließend ein neues Diff durchgeführt, bis Diff keinen Errorcode sendet. Dann kann davon ausgegangen werden, daß die Originaldatei fertig geschrieben ist, da keine Änderungen mehr stattfinden.

Mir ist klar, daß dieses in einer while Schleife erfolgen muß. Mir ist nur nicht klar, wie ich die Wiederholung für den Fall des Fehlereintritts veranlasse.

Vielen Dank für Eure Tips.

Mit freundlichen Grüßen

Wolfram

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Bestimmten Befehl ausführen, bis kein Fehlercode auftritt?

Beitrag von Danielx » 27.09.2008 02:33:32

wow hat geschrieben:Mir ist klar, daß dieses in einer while Schleife erfolgen muß. Mir ist nur nicht klar, wie ich die Wiederholung für den Fall des Fehlereintritts veranlasse.
Return Code abfragen?

Code: Alles auswählen

while ! diff Datei1 Datei2 ; do echo wiederholen ; done
Gruß,
Daniel

wow
Beiträge: 124
Registriert: 29.01.2004 17:17:17
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: 12355 Berlin

Re: Bestimmten Befehl ausführen, bis kein Fehlercode auftritt?

Beitrag von wow » 27.09.2008 02:55:10

Vielen Dank!!

Genau das war es. Hier habe ich wohl zu kompliziert gedacht. Anstelle Deines vorgeschlagenen echo "wiederholen" käme hier das sleep.

MfG

Wolfram

Antworten