“ $ {image ## ** /}”花括号扩展有什么作用?

时间:2019-06-04 14:53:39

标签: bash shell

我无法理解此代码段中以下扩展的用途:

image=$1
image_id=${image##*/}

我尝试对echo ${image##*/}的多个值进行image,但是每次都得到相同的结果。这段代码可以删除吗?

$ image='var3-image'
$ echo ${image##*/}
var3-image
$ image=''
$ echo ${image##*/}

$ image='var3-image:asfd'
$ echo ${image##*/}
var3-image:asfd
$ image='var3-image#asfd**'
$ echo ${image##*/}
var3-image#asfd**

1 个答案:

答案 0 :(得分:0)

这将从字符串中删除前导/个字符。

$ image='/vra3-image`
$ echo ${image##*/}
vra3-image

通过此链接:((http://tldp.org/LDP/abs/html/string-manipulation.html

  

删除子字符串

     

$ {string#substring}从前面的$ substring中删除最短匹配项   $ string。

     

$ {string ## substring}从$前面删除$ substring的最长匹配项   $ string。