# make sure we have a way of checking these things cd /proc/$$/fd || cd /dev/fd || exit 1 [ -e 44 ] && exit 1 exec 44>/dev/null [ -e 44 ] || exit 1 echo pass fd out open [ -e 55 ] && exit 1 exec 55>&44 [ -e 55 ] || exit 1 echo pass fd out dup exec 44>&- [ -e 44 ] && exit 1 echo pass fd out close [ -e 66 ] && exit 1 exec 66</dev/null [ -e 66 ] || exit 1 echo pass fd in open [ -e 77 ] && exit 1 exec 77<&66 [ -e 77 ] || exit 1 echo pass fd in dup exec 66<&- [ -e 66 ] && exit 1 echo pass fd in close