shell 变量特殊操作

替换运算符

1
2
3
4
${var:-word}    如果var存在且非null,返回它的值;否则返回word
${var:=word}    如果var存在且非null,返回它的值;否则将word赋值给var,并返回var的值
${var:?word}    如果var存在且非null,返回它的值;否则显示var:word
${var:+word}    如果var存在且非null,返回word;否则返回null

模式匹配运算符

1
2
3
4
${var#pattern}    匹配前缀(最小匹配),并返回余下内容
${var##pattern}   匹配前缀(最大匹配),并返回余下内容
${var%pattern}    匹配结尾(最小匹配),并返回余下内容
${var%%pattern}   匹配结尾(最大匹配),并返回余下内容

注:pattern为正则表达式匹配