【发布时间】:2013-10-16 22:48:00
【问题描述】:
来自 /usr/local/bin/erl
ROOTDIR=/usr/local/lib/erlang
BINDIR=$ROOTDIR/erts-5.9.1/bin
EMU=beam
PROGNAME=`echo $0 | sed 's/.*\///'`
export EMU
export ROOTDIR
export BINDIR
export PROGNAME
exec $BINDIR/erlexec ${1+"$@"}
我知道“$@”是个参数。但是 {1+"$@"} 是什么意思?
【问题讨论】:
-
这是一个时代错误。您可以(并且应该)改用
"$@"。 -
...另外,不引用
$BINDIR是一个错误,不引用$0也是一个错误,并且使用sed 代替参数扩展是非常愚蠢的。不要将此视为要模拟的代码。