bash 스크립트가 파일 디스크립터 (FD)에 추가 정보가 열려있을 때 3 이상으로 출력되도록하고 싶습니다. FD가 열려 있는지 테스트하기 위해 다음과 같은 트릭을 고안했습니다.
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
이것은 내 필요에 충분하지만 FD가 유효한 경우 더 관용적 인 테스트 방법이 있는지 궁금합니다. 나는 특히의 매핑이 존재하는지 여부에 대해 관심이 있어요 fcntl(1)
(FD 플래그의 검색을 허용 할 쉘 명령에 콜을 O_WRONLY
하고 O_RDWR
FD가 쓸 수 있는지 여부를 테스트하고, O_RDONLY
그리고 O_RDWR
상기 FD를 읽을 수 있는지 여부를 테스트).
<>
입니까? 쉘이 stderr에서 읽히지 않을 것입니다. 왜 읽기 + 쓰기로 열려고 하시겠습니까? 본질적인 일 이 무엇 을 의미 합니까? ?