我想在名为 system("sh example.sh") 的代码中启动一个 shell 脚本,并关闭所有文件描述符,如下所示:
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 shell是dash,似乎dash不能操作大于9的文件描述符。而且我无法访问其他linux shell,如bash,我应该怎么做才能关闭fds?谢谢。