我有一个bash脚本,我在代码中看到
${variable#!}
这意味着什么?
非常感谢
答案 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!