Wie funktioniert Pipelining mit 2>&1 genau?

Wie funktioniert Pipelining mit 2>&1 genau?

Ich habe gerade angefangen, UNIX zu lernen, daher scheint die Frage vielleicht etwas für Anfänger zu sein, aber ich wäre für eine Antwort dankbar, da ich bereits seit einer Stunde versuche, es mit der Hilfe von Google selbst herauszufinden, allerdings ohne Erfolg.

cat /etc/shadow 2>&1 | wc -l

Welchen Effekt hätte dieser Befehl? Ich vermute:

  1. Der Befehl drucktdie Zeilenanzahlvon „/etc/shadow“ wird bei einem Standardfehler dieser auf die Standardausgabe umgeleitet und die Fehlerzeilen gezählt.
  2. Der Befehl drucktdie Dateienvon „/etc/shadow“: Wenn ein Standardfehler auftritt, wird dieser auf die Standardausgabe umgeleitet und die Zeilen des Fehlers werden gezählt.

Antwort1

X>&Yist fürDateideskriptor-Umleitung: Dies bedeutet, dass die gesamte Ausgabe an XfdGenau genommenWenn Sie in Y. gehen 2>&1, wird die Ausgabe von STDERR in STDOUT ausgegeben.


wc -lschreibt die Anzahl der Eingabezeilen nach STDOUT.


Zusammengibt der Befehl cat /etc/shadow 2>&1 | wc -ldie Anzahl der Zeilen in zurück /etc/shadow,sowiedie Anzahl der Fehlerzeilen.

Wenn dunichtmöchten Sie diese Fehlerzeilen zählen, verwenden Sie einfach cat /etc/shadow | wc -l.

Antwort2

Dies ist keine direkte Antwort.

Was hält Sie davon ab, zu experimentieren?

Wenn Sie Experimente durchgeführt haben, haben Sie Ihre Frage möglicherweise selbst beantwortet.

Führen Sie verschiedene Kombinationen der Befehle aus.

cat /etc/shadow
cat /etc/shadows

cat /etc/shadow  2>&1
cat /etc/shadows 2>&1

und leiten Sie dann jedes weiter anwc

cat /etc/shadow    |  wc

usw. usw.

verwandte Informationen