Kurze Antwort - was macht >>
das?
Mit >>
hängen Sie die Ausgabe eines Befehls an eine Datei an.
Ihr Beispielbefehl besteht im Wesentlichen aus mehreren Teilen:
Befehl >> Dateiname
Die Ausgabe von command
würde also angehängt filename
.
Was passiert im konkreten Fall von echo
?
In Ihrem speziellen Fall gibt der echo "…"
Befehl seine Eingabeargumente an "stdout" aus, den sogenannten "Standardausgabedeskriptor". Auf die Eingabeargumente echo
folgt ein Zeilenumbruch ( \n
), sodass Sie einen Zeilenumbruch erhalten.
Hier ist ein „Standardausgabedeskriptor“ nichts anderes als ein Ausgabestream, der in Ihrer Shell angezeigt wird, wenn Sie einen Befehl ausführen. (Wenn Sie also echo foo
die Eingabetaste eingeben und drücken , foo\n
wird die tatsächliche Ausgabe des echo
Befehls angezeigt, die von Ihrer Shell foo
gefolgt von einer neuen Zeile angezeigt wird.)
Grundsätzlich verwendet alles, was in Ihre Befehlszeile schreibt, stdout. Es gibt auch einen anderen Deskriptor namens "stderr", der normalerweise für Fehlermeldungen verwendet wird. Es wird auch wie stdout gedruckt, so dass sie manchmal eingestreut werden können. Und es gibt einen Standarddeskriptor, der für die Eingabe verwendet wird. Weitere Informationen finden Sie in diesem Artikel .
Wie leiten Sie die Ausgabe in der Shell um?
Sie können stdout jederzeit zu einem Dateideskriptor umleiten , was Sie mit einem der folgenden Operatoren tun können:
>
leitet zu einem Dateideskriptor weiter. Es erstellt die Datei, wenn sie nicht vorhanden ist, oder schneidet die Datei vor dem Schreiben ab, falls sie bereits vorhanden ist. Die Datei wird daher mit stdout überschrieben.
>>
wird an einen Dateideskriptor angehängt. Es erstellt die Datei, wenn sie nicht vorhanden ist.
Sie können stderr auch mit 2>
oder 2>>
auf ähnliche Weise umleiten . Oder Sie können stderr und stdout in einer Datei kombinieren: 2>&1
macht das. Weitere Informationen zur Umleitung und einige weitere Beispiele finden Sie in diesem kleinen Tutorial .
Wie kann ich herausfinden, was ein bestimmter Shell-Code bedeutet?
Im Allgemeinen sollten Sie versuchen explainshell.com , die Ihnen visuelle Führung und Informationen über einen bestimmten Shell - Befehl geben.
man bash
ist in einer recht formalen Sprache geschrieben und möglicherweise schwer zu verstehen. Andererseits gibt der Ausdruck nurbash >>
wenige nützliche Links in Google zurück. Es ist wahr, wir möchten Wissen sammeln, ohne uns auf Google verlassen zu müssen. Aus diesem Grund kann sogar eine Frage mit leicht durchsuchbarer Antwort passen. Die Tatsache, dass Sie die Antwort weder sofort gegeben haben (siehe Kann ich meine eigene Frage beantworten? ) Noch auf vorhandene Ressourcen hingewiesen haben (für deren Verständnis Sie möglicherweise Hilfe benötigen), weist auf einen Mangel an Forschung hin.