1、如果var未定义,返回word,否则,返回var的值
syntax:
${var:-123}
example:
echo ${a:-123}
2、如果var未定义,返回word并将其赋值给var,否则返回var的值
syntax:
${var:=word}
example:
echo ${b:=123}
3、如果var未定义,将message打印到标准错误输出;否则返回var的值。注意,在shell程序中,如果var未定义,还会退出脚本。
syntax:
${var:?message}
example:
echo ${c:?Warning:variable undefined}
4、如果var定义过,则使用word替换该值;否则啥也不干。
syntax:
${d:+word}
example:
5、从变量中提取字符串,提取从下标为offset的字符开始长度为length的字符串
syntax:
${var:offset:length}
example:
6、输出变量的字符数量
syntax:
${#var}
7、从var的开头去掉与pattern匹配的部分;#与##的区别在于前者是最短匹配,后者为最长匹配
syntax:
${var#pattern}
${var##pattern}
"#pattern"为最短匹配
“##pattern”为最长匹配
匹配符: shell中的通配符,常用*、?
example:
8、从var的尾部去掉与pattern匹配的部分,%与%%的区别在于前者是最短匹配,后者为最长匹配
syntax:
${var%pattern}
${var%%pattern}
"%pattern"为最短匹配
“%%pattern”为最长匹配
匹配符: shell中的通配符,常用*、?
example:
9、进行变量值的替换,将于pattern匹配的部分用string进行替换。/与//的区别在于前者替换第一个出现的pattern,后者替换全部pattern
syntax:
${var/pattern/string}
${var//pattern/string}
example: