Fehlerbehandlung

27/04/2009 - 09:18 von Jakobus Schürz | Report spam
Hi!

In meinen Skripten habe ich folgende Konstruktion die aber nicht so
funktioniert wie von mir gewünscht.

cp $Quelle $Ziel 2>&1|logger -i ||error=6

Ich möchte wie in diesem Beispiel bei fehlgeschlagenem Kopieren die
Fehlermeldung des Kopierbefehls mitloggen und gleichzeitig die Variable
$error auf einen Wert höher 0 setzen.

Wie muss ich das richtig machen?

lg jakob
The UNIX way of Sex:
gunzip-strip-touch-finger-mount-fsck-more-yes-umount-sleep
 

Lesen sie die antworten

#1 klaus zerwes
27/04/2009 - 10:35 | Warnen spam
Jakobus Schürz schrieb:
Hi!

In meinen Skripten habe ich folgende Konstruktion die aber nicht so
funktioniert wie von mir gewünscht.

cp $Quelle $Ziel 2>&1|logger -i ||error=6

Ich möchte wie in diesem Beispiel bei fehlgeschlagenem Kopieren die
Fehlermeldung des Kopierbefehls mitloggen und gleichzeitig die Variable
$error auf einen Wert höher 0 setzen.

Wie muss ich das richtig machen?



man bash
cp $Quelle $Ziel 2>&1|logger -i
der exitstatus der pipe wird der exit status des letzten Befehls sein.
Daher wird das so nicht funktionieren.

$? ist vermutlich was du suchst ...

ERRMSG=`cp $q $z 2>&1`;
if [ $? -gt 0 ]; then
logger -is "$ERRMSG";
error=6;
fi

lg jakob



Klaus

Klaus Zerwes
http://www.zero-sys.net

Ähnliche fragen