freebsd-dev/tools/regression/bin/sh/builtins/command8.0
Jilles Tjoelker c848bc18e8 sh: Improve the command builtin:
* avoid unnecessary fork
* allow executing builtins via command
* executing a special builtin via command removes its special properties

Obtained from:	NetBSD (parts)
2010-03-06 16:57:53 +00:00

46 lines
578 B
Plaintext

# $FreeBSD$
IFS=,
SPECIAL="break,\
:,\
continue,\
. /dev/null,\
eval,\
exec,\
export -p,\
readonly -p,\
set,\
shift 0,\
times,\
trap,\
unset foo"
set -e
# Check that special builtins can be executed via "command".
set -- ${SPECIAL}
for cmd in "$@"
do
sh -c "v=:; while \$v; do v=false; command ${cmd}; done" >/dev/null
done
while :; do
command break
echo Error on line $LINENO
done
set p q r
command shift 2
if [ $# -ne 1 ]; then
echo Error on line $LINENO
fi
(
command exec >/dev/null
echo Error on line $LINENO
)
set +e
! command shift 2 2>/dev/null