스크립트가 실행되면 실행 가능한 스크립트의 내용과 함께 파일 설명자 10이 나타납니다.
예를 들어 스크립트는 다음과 같습니다.
#!/bin/sh
sleep 600
process 를 통해 fd
실행 중인 스크립트를 보면 실행 가능한 스크립트 자체의 내용이 포함된 fd10 이 나타나는 것을 볼 수 있습니다. 왜?
답변1
쉘은 시작 시 전체 스크립트를 읽는 대신 한 번에 하나의 명령문을 읽고 실행합니다. 따라서 스크립트와 계속 연결되어 있어야 합니다.
질문이 "왜 10"이라면? 따라서 본질적으로 이것은 "9보다 큰 첫 번째 FD"입니다. 역사적으로 쉘을 사용하면 "exec 4>/dev/tty"와 같은 한 자리 파일 설명자에서 작업할 수 있었습니다. 최신 쉘을 사용하면 9보다 큰 FD를 조작할 수 있습니다.
물론 시작 시 모든 내용을 읽을 수 있지만 이는 명명된 파이프나 장치와 같은 항목을 "스크립트"로 효과적으로 제공할 수 없다는 의미입니다.