${var-value} 和 ${var:-value}
- 号 如果变量设置为空则返回空值
:-号 如果变量设置为空则返回临时值
变量没声明 则临时赋值,否则使用原值
${var+value} 和 ${var:+value}
+ 号 如果变量设置为空则返回临时值
:+ 号 如果变量设置为空则返回空值
变量没声明 则实用空值
${var?err_msg} 和 ${var:?err_msg}
变量被设置则返回变量值
变量没有设置则返回临时值