Re: Bash: Fehler auch über Pipes hinweg abfangen
* Frank Küster <frank@debian.org> wrote:
> Sebastian Kayser <mls@skayser.de> wrote:
>
> > Gibt es eine Möglichkeit Fehler von aufgerufenen Kommandos trotz der
> > Verwendung von Pipes mittels trap oder etwas Ähnlichem abzufangen?
>
> ,---- set -e
> | Exit immediately if a simple command (see SHELL GRAMMAR above) exits
> | with a non-zero status. The shell does not exit if the command that
> | fails is part of an until or while loop, part of an if statement, part
> | of a && or || list, or if the command's return value is being inverted
> | via !. A trap on ERR, if set, is executed before the shell exits.
> `----
Ich hab' grad noch überlegt, ob ich hinterherschicken soll, dass ich das
auch probiert hatte (nachdem ich ja kürzlich hier über das set -e
aufgeklärt wurde). Funktioniert leider nicht.
$ cat trap.sh
#!/bin/bash
set -e
function trap_error {
echo "Subcommand returned non zero status: $?"
exit 2
}
trap trap_error ERR
./kommando_gibts_net | cat
echo "foo"
$ ./trap.sh
./trap.sh: line 11: ./kommando_gibts_net: No such file or directory
foo
Auch hiermit wird "echo foo" noch ausgeführt. Den trap-Aufruf hatte ich
testweise auch auskommentiert, selbes Problem. Jegliche weitere Ideen
sind gerne gesehen.
- sebastian
P.S.: Hat jemand ein mutt-Macro für einen schönen "Inline-Kasten"
ähnlich dem, in den Frank das "set -e" gesetzt hast?!
Reply to: