Returncode eines Befehls einer Pipe

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Returncode eines Befehls einer Pipe

Beitrag von roli » 26.06.2008 09:39:05

Hi,

ich nutze folgende Zeile in einem Script:

Code: Alles auswählen

mysqldump -h $HOSTNAME $db | gzip -9 > $BACKUP_DIR/$db.sql.gz
kennt jemand einen Weg wie ich an den Returncode von mysqldump komme? Wenn ich unmittelbar danach den RC abfrage, und er nicht 0 ist, weiss ich halt nicht ob's an mysqldump oder an gzip lag.
Das ich die Pipe in einzelschritte zerlegen kann, und damit an den RC komme ist mir klar.

Danke
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Returncode eines Befehls einer Pipe

Beitrag von gms » 28.06.2008 00:38:50

wenn du nur sicherstellen möchtest, daß alle Kommandos einen Returncode von 0 zurückliefern, dann geht das einfach über die "pipefail" Option

Code: Alles auswählen

gms@gms1 ~ $ set -o pipefail
gms@gms1 ~ $ true | cat
gms@gms1 ~ $ echo $?
0
gms@gms1 ~ $ false | cat
gms@gms1 ~ $ echo $?
1
wenn du einen speziellen Returncode eines Kommandos einer Pipe herausfiltern möchtest, dann gibt es auch noch diese Möglichkeit:

Code: Alles auswählen

gms@gms1 ~ $ { false; X=$?; } | cat
gms@gms1 ~ $ echo $X
1
Gruß
gms

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Returncode eines Befehls einer Pipe

Beitrag von roli » 28.06.2008 12:37:33

Hi,

ich denke das dein zweiter Vorschlag das Rennen macht, muss ich aber noch einbauen.

Danke
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten