将变量扩展为“$ {var %% r *}”在bash中意味着什么?

时间:2017-01-25 19:04:51

标签: bash variables

我在bash中设置了以下变量:

ver=$(/usr/lib/virtualbox/VBoxManage -v | tail -1)

然后我有以下变量,我不太明白:

pkg_ver="${ver%%r*}"

有人可以详细说明这是做什么的,以及pkg_ver与原始ver值的关系如何?

2 个答案:

答案 0 :(得分:5)

从{1}}

首次出现的字符串结尾提取文本是一种bash parameter expansion语法
r
  

$ {PARAMETER %% PATTERN}

     

此表单用于删除描述的模式,尝试从字符串的末尾匹配它。运营商"%"将尝试删除与模式匹配的最短文本,而" %%"尝试用最长的文本匹配来做。

答案 1 :(得分:0)

您将获得从变量ver到第一个“r”字符的所有内容,它将存储在pkg_ver中。

export ver=aaarrr
echo "${ver%%r*}"
aaa