2つの引数を取るプログラムが存在するとします。入力ファイルと出力ファイル。
この出力ファイルをディスクに保存するのではなくstdin
、別のプログラムに直接渡す場合はどうなりますか。これを達成する方法はありますか?
Linuxで出くわす多くのコマンドには、出力ファイルの引数として「-」を渡すオプションがあります。これは、上記で指定したことを行います。これstdin
は、プログラムのを引数として渡すことができないためですか?もしそうなら、どうすればいいのでしょうか?
これを使用してどのようにイメージするかの例は次のとおりです。
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
私が使用しているシェルはbashです。
cat < README.txt | cp /dev/fd/0
。それは言ったcp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
?またecho
、stdinからは何も読み取らないことに注意してください。
cp
どこにもファイルを置くことはできません。echo 1 2 3| cp /dev/fd/0 /dev/tty
印刷されます1 2 3
。ところで、ほとんどの場合/dev/fd/[num]
よりも機能/dev/std(in|out|err)
する可能性が高くなります。どこで機能するかについては、ファイル記述子リンクの移植性を参照してください。
cat <file | cmd /dev/fd/0
ほとんどの大学で動作します。