shell – ${1:“$@”} in/bin/sh

前端之家收集整理的这篇文章主要介绍了shell – ${1:“$@”} in/bin/sh前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到有时包装器脚本将使用$ {1:“$ @”}作为参数,而不仅仅是“$ @”。

例如,http://svn.macosforge.org/repository/macports/trunk/dports/editors/vim-app/files/gvim.sh使用

exec "$binary" $opts ${1:+"$@"}

任何人都可以将$ {1:“$ @”}分解成英文,并解释为什么它比普通的“$ @”更有优势?

“歇斯底里葡萄干”,又名历史原因。

JesperE(或Bash手册页)的解释对于它的作用是准确的:

如果$ 1存在且不是空字符串,则替换引用的参数列表。

一年二十年前,如果没有参数,而不是没有任何替代的正确的当前行为,Bourne Shell的一些破坏的小变体将替换为“$ @”的空字符串“”。任何这样的系统是否仍在使用中是可以辩论的。

[嗯:这种扩张不能正常工作:

command '' arg2 arg3 ...

在这种情况下,正确的符号是:

${1+"$@"}

无论$ 1是否为空参数,都可以正常工作。所以有人记得错误的符号,意外地引入了一个错误。]

猜你在找的Bash相关文章