# 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