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# Special built-in utilities must abort on a redirection error. 41set -- ${SPECIAL} 42for cmd in "$@" 43do 44 ${SH} -c "${cmd} > /; exit 0" 2>/dev/null && exit 1 45done 46 47# Other utilities must not abort. 48set -- ${UTILS} 49for cmd in "$@" 50do 51 ${SH} -c "${cmd} > /; exit 0" 2>/dev/null || exit 1 52done 53