cat
以下のコマンド置換、プロセス置換、パイプでstdin入力を許可すると予想しましたが、
stdinを提供した後、なぜ何も出力されないのですか?
hello
$ echo $(cat) hello
なぜ標準入力を提供できないのですか?
$ echo <(cat) /dev/fd/63
cat
私のstdinを使ってhello
stdoutにcat
出力します。hello
$ cat | cat hello hello
答え1
EOF(Ctrl + d)で入力を終了する必要があります。それ以外の場合、cat は終了しません。
echoはfdをエコーして終了し、catの出力記述子を閉じ、それに応答してcatを終了します。
最初のcatの入力は標準入力であり、2番目のcatの出力は標準出力に接続されています。最初の猫の出力と2番目の猫の入力は一緒にパイプに接続されています。