스크립트(Bash/dash 등) 실행 시 파일 설명자 10

스크립트(Bash/dash 등) 실행 시 파일 설명자 10

스크립트가 실행되면 실행 가능한 스크립트의 내용과 함께 파일 설명자 10이 나타납니다.

예를 들어 스크립트는 다음과 같습니다.

#!/bin/sh

sleep 600

process 를 통해 fd실행 중인 스크립트를 보면 실행 가능한 스크립트 자체의 내용이 포함된 fd10 이 나타나는 것을 볼 수 있습니다. 왜?

답변1

쉘은 시작 시 전체 스크립트를 읽는 대신 한 번에 하나의 명령문을 읽고 실행합니다. 따라서 스크립트와 계속 연결되어 있어야 합니다.

질문이 "왜 10"이라면? 따라서 본질적으로 이것은 "9보다 큰 첫 번째 FD"입니다. 역사적으로 쉘을 사용하면 "exec 4>/dev/tty"와 같은 한 자리 파일 설명자에서 작업할 수 있었습니다. 최신 쉘을 사용하면 9보다 큰 FD를 조작할 수 있습니다.

물론 시작 시 모든 내용을 읽을 수 있지만 이는 명명된 파이프나 장치와 같은 항목을 "스크립트"로 효과적으로 제공할 수 없다는 의미입니다.

관련 정보