shell脚本中的##*是什么意思?

shell脚本中的##*是什么意思?

脚本:

text="//ABC/REC/TLC/SC-prod/1f9/20/00000000957481f9-08d035805a5c94bf"

echo ${text##*/}

这里,上面两行脚本中的第二行是什么意思?

答案1

这是参数替换和/或扩展。从链接:

${var#Pattern}

从 $var 中删除 $Pattern 中与 $var 前端匹配的最短部分。

${var##Pattern}

从 $var 中删除 $Pattern 中与 $var 前端匹配的最长部分。

因此,${text##*/}从文本中删除最后一个之前的所有内容/。例如,获取目录的基本名称很有用。

(还有${var%Pattern}/${var%%Pattern}删除与 后端匹配的模式$var

相关内容