1IFS=, 2 3SPECIAL="break,\ 4 :,\ 5 continue,\ 6 . /dev/null,\ 7 eval,\ 8 exec,\ 9 export -p,\ 10 readonly -p,\ 11 set,\ 12 shift,\ 13 times,\ 14 trap,\ 15 unset foo" 16 17UTILS="alias,\ 18 bg,\ 19 bind,\ 20 cd,\ 21 command echo,\ 22 echo,\ 23 false,\ 24 fc -l,\ 25 fg,\ 26 getopts a -a,\ 27 hash,\ 28 jobs,\ 29 printf a,\ 30 pwd,\ 31 read var < /dev/null,\ 32 test,\ 33 true,\ 34 type ls,\ 35 ulimit,\ 36 umask,\ 37 unalias -a,\ 38 wait" 39 40# When used with 'command', neither special built-in utilities nor other 41# utilities must abort on a redirection error. 42 43set -- ${SPECIAL} 44for cmd in "$@" 45do 46 ${SH} -c "command ${cmd} > /; exit 0" 2>/dev/null || exit 1 47done 48 49set -- ${UTILS} 50for cmd in "$@" 51do 52 ${SH} -c "command ${cmd} > /; exit 0" 2>/dev/null || exit 1 53done 54