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


 ${var+value} 和 ${var:+value}
 + 号 如果变量设置为空则返回临时值
 :+ 号 如果变量设置为空则返回空值
 变量没声明 则实用空值

 ${var?err_msg} 和 ${var:?err_msg}
 变量被设置则返回变量值
 变量没有设置则返回临时值