将变量展开为“是什么意思?”${var%%r*}";在bash中是什么意思?

将变量展开为“是什么意思?”${var%%r*}";在bash中是什么意思?,bash,variables,Bash,Variables,我在bash中设置了以下变量: ver=$(/usr/lib/virtualbox/VBoxManage -v | tail -1) 然后我有一个我不太理解的变量: pkg_ver="${ver%%r*}" 有人能详细说明一下它的作用,以及pkg\u ver与原始ver值的关系吗?这是一种从字符串末尾提取文本直到第一次出现r name="Ivory" printf "%s\n" "${name%%r*}" Ivo ${PARAMETER%%PATTERN} 此表单用于从字符串末尾删除试图匹

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

ver=$(/usr/lib/virtualbox/VBoxManage -v | tail -1)
然后我有一个我不太理解的变量:

pkg_ver="${ver%%r*}"
有人能详细说明一下它的作用,以及
pkg\u ver
与原始
ver
值的关系吗?

这是一种从字符串末尾提取文本直到第一次出现
r

name="Ivory"
printf "%s\n" "${name%%r*}"
Ivo
${PARAMETER%%PATTERN}

此表单用于从字符串末尾删除试图匹配的所述模式。运算符“%”将尝试删除与模式匹配的最短文本,而“%”将尝试删除与最长文本匹配的文本


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

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

此处完全不需要导出
。环境空间是有限的资源——导出到环境中的内容越多(从而将脚本启动的其他程序复制到启动环境中),启动新进程时的最大命令行长度就越短。