什么意思#!在$ {变量#!}? (bash)的

时间:2014-09-05 08:59:07

标签: bash variables

我有一个bash脚本,我在代码中看到

${variable#!} 
这意味着什么? 非常感谢

3 个答案:

答案 0 :(得分:2)

它从变量的值中删除前导!

一个例子是:

kent$  foo='!!hello'   

kent$  echo ${foo#!} 
!hello

答案 1 :(得分:2)

请参阅http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

  

$ {参数#字}

     

这个词被扩展为产生一个模式,就像文件名扩展一样。如果模式匹配参数的扩展值的开头,则扩展的结果是具有最短匹配模式的参数的扩展值。如果参数是'@'或'',则模式删除操作依次应用于每个位置参数,并且扩展是结果列表。如果参数是使用'@'或''下标的数组变量,则模式删除操作依次应用于数组的每个成员,并且扩展是结果列表。

因此,如果$variable!开头,则会在没有第一个!的情况下返回其内容。如果没有,它将返回$variable

答案 2 :(得分:1)

演示:

var="!some!some!"
echo ${var#!}

打印

some!some!