![명령 대체, 프로세스 대체 및 파이프의 명령이 표준 입력 입력을 허용합니까?](https://linux55.com/image/8003/%EB%AA%85%EB%A0%B9%20%EB%8C%80%EC%B2%B4%2C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EB%8C%80%EC%B2%B4%20%EB%B0%8F%20%ED%8C%8C%EC%9D%B4%ED%94%84%EC%9D%98%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%ED%91%9C%EC%A4%80%20%EC%9E%85%EB%A0%A5%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%ED%97%88%EC%9A%A9%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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의 입력은 표준 입력이고, 두 번째 cat의 출력은 표준 출력에 연결됩니다. 첫 번째 고양이의 출력과 두 번째 고양이의 입력은 함께 파이프로 연결됩니다.