Angenommen, ein Programm besteht aus zwei Argumenten. Eingabedatei und Ausgabedatei.
Was ist, wenn ich diese Ausgabedatei nicht auf der Festplatte speichern, sondern direkt an ein stdinanderes Programm übergeben möchte? Gibt es einen Weg, dies zu erreichen?
Viele Befehle, auf die ich unter Linux stoße, bieten die Option, '-' als Ausgabedatei-Argument zu übergeben, was genau das tut, was ich oben angegeben habe. Liegt das daran, dass die Weitergabe stdineines Programms als Argument nicht möglich ist? Wenn ja, wie machen wir das?
Ein Beispiel für die Verwendung dieses Bilds ist:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Die Shell, die ich benutze, ist bash.
cat < README.txt | cp /dev/fd/0. Es hießcp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program? Beachten Sie auch, dass echonichts von stdin liest.
cpDatei nirgendwo. echo 1 2 3| cp /dev/fd/0 /dev/ttywird gedruckt 1 2 3. Und übrigens /dev/fd/[num]ist eher zu arbeiten als /dev/std(in|out|err)in den meisten Fällen. Unter Portabilität von Dateideskriptor-Links erfahren Sie, was Sie wo erwarten können.
cat <file | cmd /dev/fd/0funktioniert bei den meisten einheiten.