posix sh에서 파일 설명자가 열려 있는지 확인하는 것이 가능합니까?
사용자 제공 확장에 대한 스크립트에 선택적 입력 파일 설명자를 제공하면 읽기가 즉시 실패합니다 EBADF
.
#!/bin/sh
database_initialize()
{
echo "create database bob;"
# TODO check if open
# Input file descriptor 3 is used to send to bootstrap
cat <&3
}
database_initialize | mysqld --bootstrap
다음과 같은 Linux 관련 항목을 피하고 싶습니다.[ -s /proc/self/fd/3 ]
답변1
fd_is_open() (: >&"$1") 2>/dev/null;
if fd_is_open 7; then
...
fi
오류 메시지를 제거하려면 fd 2를 열어야 하기 때문에 fd 2에 잘못된 긍정이 표시됩니다.