Manchmal denke ich mir, dass vieles deutlich einfacher wäre, wenn es nur stdout geben würde, und nicht noch stderr. Diese zwei Ströme machen es manchmal nervig.
Du meinst das nicht ernst, oder :)
Genau diese zwei Ströme sind genial. Woher kannst Du sonst Betriebsdaten von Fehlermeldungen unterscheiden?
</etc/hosts grep -P '*' | wc -l # eigener Datenstrom für die Fehler vs </etc/hosts grep -P '*' |& wc -l # alles zusammen
Ich bin kein Nachrichtentechniker, geschweige denn Informatiker, aber in-band und out-of-band signallig kommen mir da in den Sinn. Ob das hier paßt, weiß ich nicht. Aber die Ausgabeströme zu verwursten kommt mir sehr falsch vor. Denn dadurch verlierst Du Information, die Du später gut brauchen könntest.
Andere non-shell Beispiele:
# C errno = 0; // to be safe int d = get_delta(); // how to declare failure? if (errno) perror("delta")
# Perl $d = get_delta(); # return undef on failure, details in $@ if (not defined $d) { die $@ };
# Go d, err := get_delta() // return err != nil on error if err != nil { fmt.Fatal(err) }
Du schlägst gerade etwas vor, was dem von „C“ entspricht. (Nicht falsch verstehen, ich finde „C“ eine super Sprache, sollte jeder lernen, der was mit Programmieren tut.)
-- Heiko