| |
|
|
| |

Unix pipes
fortune > blabla.txt
würde eine Datei erstellen die blabla.txt heisst und in das die
Ausgabe von fortune reingeschrieben würde.
Das file kannst du dann z.B. mit dem Befehl cat ausgeben:
cat blabla.txt
Der Befehl
echo Hallo Welt
gibt den text "Hallo Welt" auf dem Bildschirm aus.
Damit erzeugt
echo Hallo Welt > blabla.txt
ein File blabla.txt mit diesem Inhalt. Falls das File schon exisitert
wird es überschrieben. Wenn man nicht überschreiben sondern
anhängen will verwendet man >> :
date >> blabla.txt
würde z.B. die Ausgabe des Befehls date (das aktülle Datum)
an die datei
blabla.txt anhängen.
Das ganze funktioniert auch in umgekerte Richtung. Manche Programme
brauchen Eingaben und mit dem Pfeil in die andere Richtung kann man aus
einem File lesen und die Daten an ein Programm senden. z.B.:
cat < blabla.txt
tut zwar im Grunde das Selbe wie "cat blabla.txt" aber in obigen Beispiel
gibt cat nur aus was es mittels < "hineingestopft" bekommt.
Eine andere Form der Umleitung passiert mit dem | (pipe) Symbol.
Das leitet die Ausgabe eines Befehls zur Eingabe eines anderen um.
cat blabla.txt | less
Der Unterschied hier ist, dass nicht eine Datei mit dem namen "less"
erzeugt wird sondern die Ausgabe in ein Programm names "less" geschrieben wird.
less kennst du ja schon aber das |-Symbol geht mit vielen Befehlen.
Davon werden wir aber andermal noch mehr kennen lernen.
Was zu beachten ist:
Den Ausgabekanal über den die Ausgaben eines Befehles ablaufen nennt man
"standard out" oder kurz STDOUT. Den Kanal über den die Eingaben an
ein Kommando laufen heisst analog STDIN.
Die Umleitung betrifft nur die "normale" Ausgabe. Fehlermeldungen werden
über einen eigenen Kanal ausgegeben. Dieser wird "standard error"
(STDERR) genannt. Er ist von der normalen Umleitung nicht betroffen.
kann aber mit 2> umgeleitet werden. z.b:
ls --diesen-switch-gibt-es nicht 2> fehlermeldung.txt
(im obigen Beispiel wird das ls Kommando mit einem Switch aufgerufen
den es nicht kennt und das ls Kommando würde sich darüber
beschweren. Die Fehlermeldung wird hier mit dem 2> Symbol in die Datei
fehlermeldung.txt
geschrieben.)
REFERENCES:
http://www.strath.ac.uk/IT/Docs/IntroToUnix/node39.html
http://www.ee.surrey.ac.uk/Teaching/Unix/unix3.html
http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
http://www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO-4.html
man bash
|
|
| |
|
|
|