变量替换
非空 空 不存在
Var=${Str-Expr} Str 空 Expr
Var=${Str:-Expr} Str Expr Expr
不存在至stderr
Var=${Str?Expr} Str 空 Expr(stderr)
Var=${Str:?Expr} Str Expr(stderr) Expr(stderr)
不存在 被赋值
Var=${Str=Expr} Str 空 Expr (Str=Expr)
Var=${Str:=Expr} Str Expr(stderr) Expr (Str=Expr)
存在转换
Var=${Str+Expr} Expr Expr 空
Var=${Str:+Expr} Expr 空 空
存在 不存在
非空 空
– Str Str Expr Expr
? Str Str Expr(stderr) Expr(stderr)
= Str Str Expr (Str=Expr) Expr (Str=Expr)
+ Expr Expr Str Str
字符串处理
${#Var} /* Var长度 */
字符串切片
:a 1..a[… ${Var:a}
: -a …[a..1 ${Var:a:b}
${Var:a:-b}
空 …]
:b …[b]… ${Var: -a}
:-b …]b..1 ${Var: -a:b}
${Var: -a:-b}
截取
${Var#*W} /* 1..W] 删除 */
${Var##*W} /* 贪婪模式 */
${Var%W*} /* [W..1 删除 */
${Var%%W*} /* 贪婪模式 */
删除 替换
${Var/Pat} ${Var/Pat/Sub} /* 第一个 匹配到 */
${Var//Pat} ${Var//Pat/Sub} /* 所有 */
${Var/#Pat} ${Var/#Pat/Sub} /* 行首 */
${Var/%Pat} ${Var/%Pat/Sub} /* 行尾 */
大小写
${Var^^} /* 所有大写 */
${Var,,} /* 所有小写 */
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/103043