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