[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: