나는 블랙홀과 같은 곳 > /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/null
program
입력 매개변수(옵션의 입력 매개변수 또는 작업할 입력 파일)가 파일 설명자 0(예: STDIN)을 통해 파일에서 얻어지고 있음을 의미합니다 /dev/null
.
아시다시피, /dev/null
아무것도 포함하지 않고 읽을 때 EOF(파일 끝)를 알리므로 입력을 받는 프로그램은 /dev/null
기본적으로 아무것도 입력 인수로 리디렉션하지 않습니다.