Hallo, Am Tue, 04 Oct 2005, Markus Heidinger schrieb:
Peter Wiersig wrote at Tuesday, October 04, 2005 9:23 AM
aufrufe um alle Meldungen der Befehle des Scripts im Logfile zu haben.
AFAIK Darf hier KEIN Leerzeichen zwischen dem Ampersand (Dateideskriptor) und den "Größer" Zeichen stehen, vielleicht ein Grund, dass Du im Log nicht das siehst, was Du sehen willst.
Ja, das aendert die Bedeutung: dh@slarty[3]: ~ (0)$ f() { echo 'stdout'; echo 'stderr' >&2; } dh@slarty[3]: ~ (0)$ f & >>/dev/null [1] 3279 dh@slarty[3]: ~ (0)$ stdout stderr [1]+ Done f dh@slarty[3]: ~ (0)$ $ f &>>/dev/null bash: syntax error near unexpected token `&>>/' dh@slarty[3]: ~ (258)$ f >>/dev/null 2>&1 dh@slarty[3]: ~ (0)$
Doch, ist ok. "background" und "anhaengen" sind die beiden Features, die diesem Aufruf mitgegeben werden.
Was meinst Du hier mit "background"?
Dass das script im Hintergrund laeuft, vgl. programm & Korrekt mit Ausgabeumleitung(en) geht's so: dh@slarty[3]: ~ (0)$ f >>/dev/null 2>&1 & [1] 3280 [1]+ Done f >>/dev/null 2>&1 dh@slarty[3]: ~ (0)$ D.h. das '&' um das Programm in den Hintergrund zu schicken kommt als letztes.
Ich habe mit dieser Schreibweise (Umleitung von stdout _stderr_ _und_ Anhängen an eine Datei auch schon öfter eigenartiges Verhalten beobachtet, versuch es mal mit "./script.sh >> log.txt 2>> log.txt" ... Sollte eigentlich das selbe bewirken, tut es aber wie gesagt zumindest bei der Bash von SuSE nicht immer.
Es ist empfehlenswert noch "2>&1" anzuhaengen, damit auch die Fehlermeldungen in log.txt auftauchen.
Sollte das nicht schon durch "2>> log.txt" bewirkt werden?
Geht auch. f >>log.txt 2>>log.txt & ist aequivalent zu f >>log.txt 2>>1 & Die Variante im script mit exec 1>>log.txt exec 2>>log.txt ist aber IMHO auch gut geeignet (siehe man bash | less '+/^redirection'). Ausserdem gibt's in der FAQ einen Artikel: http://suse-linux-faq.koehntopp.de/q/q-shell-redirect.html Und selflinux.de hat auch eine recht gute Einfuehrung in die Shell-Programmierung. -dnh -- "Bitte nennen sie die Art des medizinischen Notfalls!" -- the doc "Ich habe ein Date" -- 7of9