Katakanlah ada program, yang membutuhkan dua argumen; file input dan file output.
Bagaimana jika saya tidak ingin menyimpan file output ini ke disk, melainkan meneruskannya langsung ke stdin
program lain. Apakah ada cara untuk mencapai ini?
Banyak perintah yang saya temui di Linux memberikan opsi untuk meneruskan '-' sebagai argumen file output, yang melakukan apa yang saya tentukan di atas. Apakah ini karena melewatkan stdin
program sebagai argumen tidak mungkin? Jika ya, bagaimana kita melakukannya?
Contoh bagaimana saya akan menggunakan gambar ini adalah:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
Shell yang saya gunakan adalah bash.
cat < README.txt | cp /dev/fd/0
. Dikatakancp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? Perhatikan juga bahwa echo
tidak membaca apa pun dari stdin.
cp
file di mana pun. echo 1 2 3| cp /dev/fd/0 /dev/tty
akan dicetak 1 2 3
. Dan omong-omong, /dev/fd/[num]
lebih cenderung bekerja daripada /dev/std(in|out|err)
dalam kebanyakan kasus. Lihat Portabilitas Link Deskriptor File tentang apa yang dapat Anda harapkan untuk bekerja di mana.
cat <file | cmd /dev/fd/0
bekerja pada sebagian besar unix.