linux – 我不明白这个参数扩展:${p // [0-9] /}
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 我不明白这个参数扩展:${p // [0-9] /},小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1328字,纯文字阅读大概需要2分钟。
内容图文
![linux – 我不明白这个参数扩展:${p // [0-9] /}](/upload/InfoBanner/zyjiaocheng/967/df64d5ecf2bf45fa8a26051f99bc6562.jpg)
在Linux /etc/init.d/functions脚本中,我发现了以下参数扩展,我不太明白:
${p//[0-9]/} replace all instances of any number to/by what?
${1##[-+]} This seems to remove all the longest left instances of minuses and pluses?
${LSB:-} This seems to say that if LSB is not set then set nothing? in other words do nothing?
解决方法:
这些是bash Shell参数扩展的实例;
见http://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
注意:ksh和zsh也支持你问题中的扩展(我不清楚功能重叠的全部范围),而sh(POSIX-features-only shell)不支持字符串替换扩展,${对// [0-9] /}.
${p//[0-9]/}
删除所有数字:用空字符串替换所有(//)数字实例([0-9]) – 即删除所有数字(在最后一个/之后是替换字符串,在这种情况下为空) .
${1##[-+]}
剥离单个前导 – 或者,如果存在:从技术上讲,这将删除由参数$1中的单个或字符组成的最长前缀(##).鉴于搜索模式只匹配单个字符,因此不需要在这里使用##作为最长的前缀,而对于最短的前缀,##也可以.
${LSB:-}
设计用于防止脚本在使用-u(nounset)shell属性运行时破坏的无操作:从技术上讲,此扩展意味着:如果变量$LSB未设置或为空,则将替换为以下字符串: – ,在这种情况下,也是空的.
虽然这看起来乍一看似乎毫无意义,但它有其目的,正如Sigi指出:
“
如果使用-u选项调用shell(或使用set -u),则${LSB: – }构造非常有意义,并且实际上可能未设置变量$LSB.如果您将$LSB引用为${LSB: – },则可以避免shell退出.由于在复杂脚本中使用set -u是一种很好的做法,因此这一举措很常见.
“
内容总结
以上是互联网集市为您收集整理的linux – 我不明白这个参数扩展:${p // [0-9] /}全部内容,希望文章能够帮你解决linux – 我不明白这个参数扩展:${p // [0-9] /}所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。