NewhamとRosenblattの「Learning the Bash Shell」第3版15ページに、以下の説明があります。
filename引数が省略されたときに特定のUNIXユーティリティが標準入力を受け入れない場合は、ダッシュ(0)を引数として使用してみてください。一部のNIXシステムは標準入力をファイルとして提供するため、/ dev / stdinファイルを入力ファイルargumnetとして提供できます。
最後の文は明確ではありません。 「標準入力をファイルとして提供する」とはどういう意味ですか?
/dev/stdin
システムに名前が付けられたファイルを「複製」するのは危険ではありません(私は個人的にUbuntu 16.04を使用します)。
しかし、同様のケースを経験しました。この投稿。
ベストアンサー1
生成するのではなく、/dev/stdin
使用することです。/dev/stdin
デフォルトでは、標準入力をサポートしていない(または使用する-
)コマンドで使用するファイルを指定して、とにかく標準入力を使用します。
だから
cat
cat -
cat /dev/stdin
すべてはcat
標準入力から読み取られます(/dev/stdin
異なるファイル記述子を使用してわずかに異なる方法で使用されますが、これはすべての場合で同じではないことを意味します)。私はない作る /dev/stdin
、既存のデバイスノードをパラメータとして使用しますcat
。