加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:19:38 所属栏目:安全 来源:网络整理
导读:我注意到有时包装器脚本将使用$ {1:“$ @”}作为参数,而不仅仅是“$ @”。 例如,http://svn.macosforge.org/repository/macports/trunk/dports/editors/vim-app/files/gvim.sh使用 exec "$binary" $opts ${1:+"$@"} 任何人都可以将$ {1:“$ @”}分解成英
我注意到有时包装器脚本将使用$ {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是否为空参数,都可以正常工作。所以有人记得错误的符号,意外地引入了一个错误。]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读