[LINUX] Lassen Sie uns gemeinsam die Standardeingabe / -ausgabe von bash verstehen und ein Shell-Skript schreiben.

Ja, ich denke, der Titel ist bis auf die Wortübereinstimmung perfekt. Ja. Standard-E / A ist für Shell-Skripte sehr wichtig, aber ich werde hier nicht auf die Shell-Skript-Notation eingehen (Titelbetrug).

Was ist Standardeingabe / -ausgabe?

Möglicherweise kennen Sie dieses Wort, Standardeingabe / -ausgabe. Wenn unter Linux ein Befehl ausgeführt wird, werden automatisch drei Kanäle für die Ein- und Ausgabe geöffnet. Das sind die drei unten.

Lassen Sie uns umleiten

Die Funktion zum Ändern des Standardeingabe- / Ausgabeziels heißt Redirect **. Ich denke, es ist eine gute Idee, das Standardausgabeziel in eine Datei umzuleiten.

Standardeingabeumleitung

Wenn Sie beispielsweise den Befehl cat ohne Argumente ausführen, wartet die Befehlszeile auf die Eingabe über die Tastatur. Wenn Sie also eine entsprechende Datei ohne Argument in den Befehl cat eingeben und umleiten, sieht dies wie folgt aus. Das Symbol ** <** wird übrigens für die Umleitung von Eingaben verwendet.

qiita:~/qiita$ vim ore.txt
qiita:~/qiita$ cat < ./ore.txt
Ich bin ein Genie. Niemand hat das gesagt, und die Ergebnisse haben es nicht bewiesen, aber ich weiß. Weil ich ich bin(Unbekannt)
qiita:~/qiita$ 

Es ist so. Im Fall des Befehls "cat" kann das gleiche Ergebnis erzielt werden, indem eine Datei als Argument angegeben wird.

Standardausgangsumleitung

Auch dieses Mal werde ich ein Beispiel für die Umleitung von Ausgaben mit dem einfachen Befehl "cat" zeigen.

qiita:~/qiita$ cat ./ore.txt > watashi.txt
qiita:~/qiita$ cat ./watashi.txt 
Ich bin ein Genie. Niemand hat das gesagt, und die Ergebnisse haben es nicht bewiesen, aber ich weiß. Weil ich ich bin(Unbekannt)
qiita@pumpkin:~/qiita$ 

Mit ore.txt als Argument von cat wird watashi.txt in der Ausgabeumleitung angegeben. Wenn ich es überprüfe, wird der Inhalt von ore.txt in watashi.txt ausgegeben.

Übrigens wird die Zieldatei für die Ausgabeumleitung überschrieben, wenn sie vorhanden ist, und automatisch generiert, auch wenn sie nicht vorhanden ist. Sie können es am Ende in eine zusätzliche Notiz ändern, indem Sie zwei überlappende Umleitungssymbole wie >> ← verwenden.

Fehler bei der Standardausgabe

Ganz am Ende ist die Standardfehlerausgabe ein anderer Kanal als die Standardausgabe. Selbst wenn Sie das Standardausgabeziel in eine Datei ändern, wird die Fehlerausgabe auf dem Display angezeigt.

qiita@pumpkin:~/qiita$ cat < nainai.txt > watashi.txt
bash: nainai.txt:Es gibt keine solche Datei oder kein solches Verzeichnis
qiita@pumpkin:~/qiita$ 

Verwenden Sie hier das Symbol 2> für die Standardfehlerausgabe.

qiita@pumpkin:~/qiita$ cat ./nainai.txt 2> error.txt
qiita@pumpkin:~/qiita$ cat ./error.txt 
cat: ./nainai.txt:Es gibt keine solche Datei oder kein solches Verzeichnis
qiita@pumpkin:~/qiita$ 

Es ist so. Sicherlich wird der Fehlerinhalt zu error.txt umgeleitet.

Nachwort

Es gibt noch mehr Inhalte zur Standardeingabe / -ausgabe, aber ich freue mich darauf, diesen Artikel zu aktualisieren. Ich bin sicher, ich werde es tun.

Recommended Posts

Lassen Sie uns gemeinsam die Standardeingabe / -ausgabe von bash verstehen und ein Shell-Skript schreiben.
Verstehen Sie die Anzahl der Eingabe- / Ausgabeparameter des Faltungs-Neuronalen Netzes
Versuchen wir es mit einem Shell-Skript
Verarbeiten Sie den Inhalt der Datei der Reihe nach mit einem Shell-Skript
Schreiben Sie ein Skript in Shell und Python, um Sie in Slack zu benachrichtigen, wenn der Vorgang abgeschlossen ist
Bedingte Verzweigung aufgrund des Vorhandenseins einer Shell-Skriptdatei
Schreiben Sie die Standardausgabe in eine Datei
Lesen Sie die Standardausgabe eines Unterprozesses zeilenweise in Python
Hinweise zur Standardeingabe / -ausgabe von Go
Erstellen eines Shell-Skripts zum Schreiben eines Tagebuchs
Lassen Sie uns das Bash-Skript in Java ausführen
Lassen Sie uns mit Python Receive spielen und den Text des Eingabeformulars speichern / anzeigen
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
Schreiben wir ein Python-Programm und führen es aus
Ausgabe in Form eines Python-Arrays
Berücksichtigung der Stärken und Schwächen von Python
[Python] Ändern Sie die Textfarbe und Hintergrundfarbe eines bestimmten Schlüsselworts in der Druckausgabe
Ein Memorandum über Warnungen in Pylint-Ausgabeergebnissen
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel
Empfängt und gibt die Standardausgabe von Python 2- und Python 3> C-Implementierungen aus
Ich habe das Standardbetriebssystem und die Shell der Docker-Maschine überprüft
[Ev3dev] Lassen Sie uns den Mechanismus der LCD-Steuerung (Bildschirmsteuerung) verstehen
Geben Sie das Ausgabeergebnis von sklearn.metrics.classification_report als CSV-Datei aus
[OCI] Python-Skript zum Abrufen der IP-Adresse einer Recheninstanz in Cloud Shell
[Hinweis] Ein Shell-Skript, das die CPU-Auslastung eines bestimmten Prozesses in einer while-Schleife überprüft.
Geben Sie dem Befehl history ein Datum und eine Uhrzeit ein und sammeln Sie Verlaufsdateien aller Benutzer mit einem Skript
Was scheint eine Vorlage für den Standardeingabe-Teil des Competition Pro in Python3 zu sein
Eine Geschichte über die Portierung des Codes "Versuchen Sie zu verstehen, wie Linux funktioniert" nach Rust