파일 설명자가 0
키보드에 연결되어 있음을 나타내는 여러 리소스가 있습니다.
나는 배웠다echo
다음에서 수신된 입력이 없습니다.stdin
(또는 0
).
이것은 나에게 매우 모순적으로 느껴집니다. 실행할 때 echo foo
명령에 입력을 전달하는 방법으로 키보드를 사용합니다. stdin
여기에 모순이 없도록 키보드와 연결된다는 것은 어떤 의미에서 인가?
답변1
첫째, stdin이 항상 키보드와 연관되어 있는 것은 아닙니다. 둘째, 문자열을 셸에 echo
전달하기 위해 키보드를 사용하고 있습니다 . echo foo
쉘은 해당 문자열을 구문 분석하고 이름이 지정된 명령 echo
(해당 명령이 쉘 또는 실행 파일의 내장 명령인지 /usr/bin/echo
또는 /bin/echo
관련이 없는지 여부)을 호출합니다. 이 명령은 인수를 구문 분석하고 표준 입력을 무시하고 문자열을 작성합니다.foo\n