Wie merken Sie sich die Syntax für die 2>&1-Umleitung

Wie merken Sie sich die Syntax für die 2>&1-Umleitung

Hast du eine Eselsbrücke oder ein System? Das nervt mich schon seit Jahren, ich muss immer nachschauen

Antwort1

Wenn Sie ein C-Programmierer sind, können Sie sich das &1als „die Adresse von 1“ vorstellen, also 2>&1etwa „Dateideskriptor Nr. 2 an dieselbe Stelle wie Nr. 1 umleiten“.

Antwort2

"Zwei zu eins"(„to“ ist >) ergibt für mich mehr logischen Sinn als „Two and to one“, womit ich es normalerweise verwechseln würde. Wenn Sie „and one“ als einzelnes Nomen (einen Ort) betrachten, ergibt es im Kontext auch grammatikalisch Sinn, was bei „Two and to one“ schwieriger ist – Sie müssten „to one“ als einzelnes Nomen betrachten, und es würde im Kontext immer noch keinen Sinn ergeben.

Antwort3

Keine Eselsbrücke, aber ich lese es so:

0ist stdin. 1ist stdout. 2ist stderr. >ist in. <ist aus. &ist Dateideskriptor (in einigen Shells).

2>&1
2      >    &               1
stderr into file descriptor 1

redirect stderr into stdout

Es kann sich ändern, wenn Sie vor der Umleitung einen der Dateideskriptoren verändert haben …

2>somefile 1>&2
2      >    somefile     1      >    &2
stderr into somefile and stdout into file descriptor 2

redirect stderr into somefile and stdout into somefile. 

Antwort4

Ich habe mich daran erinnert, dass es immer 2 -> 1 ist. Stderr zu stdout.

Der Mittelteil ist immer der schwierige und ich habe es immer vermasselt, bis mir einfiel, dass zuerst das scharfe Zeichen kommt >und dann das Zeichen, das ich im wirklichen Leben nicht schreiben kann &.

Also nie 2&>1, immer2>&1

verwandte Informationen