Heim > Artikel > Backend-Entwicklung > Die Bedeutung von „2>&1' in der Linux-Shell
Sie können es oft in geplanten Aufgaben sehen. Zum Beispiel das Beispiel einer geplanten Aufgabe unseres Unternehmens:
*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne >/dev/null 2>&1*/2 * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testTwo >/dev/null 2>&1
Für & 1 sollte es genauer gesagt der Dateideskriptor 1 sein, und 1 identifiziert die Standardausgabe stdout.
Für 2 steht Standardfehler, stderr.
2>&1 bedeutet, dass die Standardfehlerausgabe auf die Standardausgabe umgeleitet wird. Hier wurde die Standardausgabe nach /dev/null umgeleitet. Dann wird der Standardfehler auch nach /dev/null ausgegeben.
Sie können sich /dev/null als „schwarzes Loch“ vorstellen. Es entspricht einer schreibgeschützten Datei Für immer verloren gehen. Und wenn Sie versuchen, Inhalte daraus zu lesen, erhalten Sie nichts
Gelegentlich können Sie & am Ende des Befehls hinzufügen, um das Programm im Hintergrund ausführen zu lassen.
Warum steht 2>&1 am Ende?
index.php task testOne >/dev/null 2>&1
Wir können verstehen, dass die linke Seite die Standardausgabe ist, okay, jetzt wird die Standardausgabe direkt in /dev/null eingegeben und 2> ;&1 leitet den Standardfehler zur Standardausgabe um. Wenn das Programm also einen Fehler generiert, entspricht dies dem Fehler, der nach links fließt, und die linke Seite wird weiterhin in /dev/null eingegeben .
kann so verstanden werden, dass, wenn es in die Mitte geschrieben wird, die in der Standardausgabe angegebene Ausgabedatei blockiert wird.
Sie können
verwendenls 2>1 Test, der Fehler, dass keine Datei 2 vorhanden ist, wird nicht gemeldet, sondern eine leere Datei 1 wird ausgegeben;
ls xxx 2>1 Test, der Fehler, dass keine xxx-Datei vorhanden ist Ausgabe an 1;
ls xxx 2>&1 test, die Datei 1 wird nicht generiert, aber der Fehler wird an die Standardausgabe gesendet
ls xxx >out.txt 2>&1, es ist tatsächlich möglich durch ls xxx ersetzt werden 1>out.txt 2>&1;Umleitungssymbol>Der Standardwert ist 1 und Fehler und Ausgaben werden an out.txt übertragen.
Das obige ist der detaillierte Inhalt vonDie Bedeutung von „2>&1' in der Linux-Shell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!