Cronjob
Pierre Bernhardt
mirrorgate at gmx.de
Tue Nov 26 14:08:02 CET 2002
> On Tue, 2002-11-26 09:26:06 +0100, Ralph Meyer <ralph.meyer at kludi.de>
> wrote in message
> <32899.193.0.21.30.1038299166.squirrel at kww.kludi.eisenberg
> .de>:
>
> 2>&1 > /dev/null
>
> Der fd von stdout wird kopiert auf das, was fd2 ist (damit werden die
> stderr-Ausgaben dahin geschickt, wo bisher stdout landet). Anschießend
> wird stdout geerdet. Übrig bleibt stderr, und der landet nun da, wo
> vorher stdout gewesen wäre.
Ja, funktionieren tuts so. Das weiss ich. Aber leider wird net von vorne
nach
hinten ausgewertet. Wenn dem so waere , wuerde
>/dev/null 2>&1
das gleiche Ergebnis bringen.
Komischerweise seh ich da gar nix: Bsp.:
# (echo hallo; cat blasuelz)
hallo
cat: cannot open blasuelz
# (echo hallo; cat blasuelz) >/dev/null 2>&1
Wenn ich aber die Umleitungen austausche:
# (echo hallo; cat blasuelz) 2>&1 >/dev/null
cat: cannot open blasuelz
Folgendes nun umgekehrt ausprobiert:
# (echo hallo; cat blasuelz) 2>/dev/null >&2
# (echo hallo; cat blasuelz) >&2 2>/dev/null
hallo
Ich versteh da noch net so richtig die logic dahinter. Wird das von hinten
nach
vorne ausgewertet?
Also mal probiert:
# (echo hallo; cat blasuelz) >&2 2>/dev/null &>/testfile
# cat testfile
hallo
cat: cannot open blasuelz
Aha. Sieh wohl danach aus. Naja, so richtig scchlau werd ich aus der logic
nicht,
denn dann muesste ja die pipe | genau solch einer Reglementierung
unterworfen sein.
Dachte ich jedenfalls immer. Also doch mal nen Buch ueber shells kaufen...
Nachdenklich hinterlassener...
Pierre
Wieder einen bug auf meiner Festplatte behoben.
--
--
Pierre Bernhardt
More information about the Linux
mailing list