首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘${parameter#word}’和‘${parameter##word}’之间的差异?

‘${parameter#word}’和‘${parameter##word}’之间的差异?
EN

Unix & Linux用户
提问于 2021-09-14 21:34:16
回答 1查看 519关注 0票数 0

根据man bash的说法:

${parameter#word} ${parameter##word}删除匹配的前缀模式。该单词被展开以产生一个模式,就像在路径名称展开中一样,并使用下面模式匹配下描述的规则与参数的扩展值相匹配。如果模式与参数值的开头匹配,则展开的结果是删除参数的扩展值,并删除最短匹配模式(#'' case) or the longest matching pattern (the##‘大小写)。如果参数为@或*,则模式删除操作依次应用于每个位置参数,并且展开是结果列表。如果参数是以@或*订阅的数组变量,则模式删除操作依次应用于数组的每个成员,扩展是结果列表。

不知怎么的,我没有找到一种在${parameter#word}${parameter##word}之间给出不同结果的情况。

我正在寻找能够说明这两种语法之间的不同行为的情况。顺便说一句,什么是最短的匹配模式,什么是最长的匹配模式?

EN

回答 1

Unix & Linux用户

发布于 2021-09-14 21:40:49

我刚找到了这个例子:

代码语言:javascript
复制
$ INT=00011
$ echo "${INT#*0}"
0011
$ echo "${INT##*0}"
11

这里,我们首先将字符串"00011“赋值给变量'INT',然后输出由${parameter#word}${parameter##word}执行的参数展开的结果,参数为'INT‘作为参数,'*0’作为单词模式。

与参数'*0‘的最小匹配是'0',而最大匹配是'000’。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/669013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档