]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
sh: Remove the "exp" builtin.
authorjilles <jilles@FreeBSD.org>
Fri, 27 May 2011 20:53:07 +0000 (20:53 +0000)
committerjilles <jilles@FreeBSD.org>
Fri, 27 May 2011 20:53:07 +0000 (20:53 +0000)
commitaa5140b7ec861ac2939b1db8b6aa22e74a58a1d7
treeb0f51b2237bbd8a5722a21549a5e35788e411bd0
parent5c7c156d1e87d7f343acc5808137d89bd70c871b
sh: Remove the "exp" builtin.

The "exp" builtin is undocumented, non-standard and not very useful.

If exp's return value is not used, something like
VAR=$(exp EXPRESSION)
is equivalent to
VAR=$((EXPRESSION))
except that errors in the expression are fatal and quoting special
characters is not needed in the latter case.

If exp's return value is used, something like
if exp EXPRESSION >/dev/null
can be replaced by
if [ $((EXPRESSION)) -ne 0 ]
with similar differences.

The exp-run showed that "let" is close enough to bash's and ksh's builtin
that removing it would break a few ports. Therefore, "let" remains in 9.x.

PR: bin/104432
Exp-run done by: pav (with some other sh(1) changes)
bin/sh/arith_yacc.c
bin/sh/builtins.def