シェルスクリプトでダッシュを介して9より大きいファイル記述子を閉じる方法

シェルスクリプトでダッシュを介して9より大きいファイル記述子を閉じる方法

system("sh example.sh") というコードでシェルスクリプトを起動し、次のようにすべてのファイル記述子を閉じたいと思います。

for fd in $(ls /proc/$$/fd); do
   case "$fd" in
    0|1|2)
        ;;
    *)
        eval "exec $fd<&-"
        ;;
    esac
done

ただし、エラーが報告されます。 example.sh 1: exec: 10: not found

Linuxシェルはダッシュです。ダッシュは9より大きいファイル記述子を操作できないようです。そして、bashなどの他のLinuxシェルにアクセスすることはできません。 fdsをオフにするにはどうすればよいですか?ありがとうございます。

ベストアンサー1

おすすめ記事