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から読み取らないので、なぜそれをread + writeで開きますか?内因性に何が起こったかとはどういう意味ですか??