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に誤った肯定が表示されます。