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를 끄려면 어떻게 해야 합니까? 감사해요.