Ergebnis-Kode einer Pipe abfragen
Jan-Benedict Glaw
jbglaw at lug-owl.de
Thu Aug 11 11:34:30 CEST 2005
On Thu, 2005-08-11 11:10:15 +0200, Christian Weddeling <weddeling at arcor.de> wrote:
> Hallo,
>
> ich möchte in einem Shell-Skript den Ergebnis-Kode einer Pipe abfragen.
> Sobald einer der beiden Befehle Probleme macht, will eine Meldung
> ausgeben beziehungsweise dem Benutzer ein Auswahlmenü anzeigen.
>
> Beispiel:
>
> Quelle | Ziel
Das geht so ohne weiteres nicht; bei verketteten Befehlen (wie diesem)
ist die exit value (in $?) gleich derjenigen der letzten ausgefuehrten
Komponente. Ergo wenn "Ziel" meint, erfolgreich gewesen zu sein, wird
Erfolg gemeldet.
In der groessten Not kann man drumherum arbeiten:
---------------------------------------------
TEMPFILE1="`tempfile`"
TEMPFILE2="`tempfile`"
( Quelle || echo Mist > "${TEMPFILE1}"; ) | ( Ziel || echo Mist > "${TEMPFILE2}"; )
if [ ! -z "${TEMPFILE1}" -o ! -z "${TEMPFILE2}" ]; then
RET=1
else
RET=0
fi
rm -f -- "${TEMPFILE1}" "${TEMPFILE2}"
----------------------------------------------
...und dann statt, wie gewohnt, $? auszuwerten, nimmst Du ${RET}.
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20050811/b96e6d89/attachment.sig>
More information about the Linux
mailing list