一个例子:
foo() {
for i in ${@+"$@"}; do
echo $i
done
}
Run Code Online (Sandbox Code Playgroud)
据我所知,if ${parameter+word}的扩展结果已经确定.但为什么不用呢?我确信有一些好处,但任何人都可以举个例子吗?wordparameterfor i in "$@"; do
谢谢!
根据POSIX标准,"$@"如果$@未设置则应扩展为空.但是,原始Bourne shell将其扩展为单个空字符串.${@+"$@"}如果$@未在任一shell中设置,将扩展为空.
资料来源:http://www.in-ulm.de/~mascheck/various/bourne_args/