"</dev/null"은(는) 무슨 뜻인가요?

"</dev/null"은(는) 무슨 뜻인가요?

나는 블랙홀과 같은 곳 > /dev/null으로 사물을 리디렉션하는 것을 이해합니다. /dev/null그러나 나는 < /dev/null그것이 무엇을 의미하는지 이해하지 못합니다. 나는 다음과 같이 작성된 일부 스크립트를 본 적이 있습니다.

nohup myprogram > foo.out 2> foo.err < /dev/null &

그렇다면 < /dev/null위 코드의 의미는 무엇일까요?

이것은제안은 어디에 있나요?

답변1

모든 I/O 스트림이 점유/점유되었는지 확인합니다.

이렇게 하면 백그라운드 프로세스가 터미널의 어떤 항목에도 "연결"되지 않으므로 프로그램이 TTY에서 데이터를 읽으려고 시도하여 터미널이 중단되는 일 없이 업무를 수행할 수 있습니다.

이 경우 쉘 스크립트에서 ssh를 통해 프로세스를 시작하므로 스크립트가 방해 없이 실행되는지 확인할 수 있습니다.

답변2

program </dev/nullprogram입력 매개변수(옵션의 입력 매개변수 또는 작업할 입력 파일)가 파일 설명자 0(예: STDIN)을 통해 파일에서 얻어지고 있음을 의미합니다 /dev/null.

아시다시피, /dev/null아무것도 포함하지 않고 읽을 때 EOF(파일 끝)를 알리므로 입력을 받는 프로그램은 /dev/null기본적으로 아무것도 입력 인수로 리디렉션하지 않습니다.

관련 정보