shell默认变量
${var:-string}/${var:=string}
A=${var:-string} B=${var:=string}
A和B变量中的var变量如果为空,则用string来替换var变量,否则变量var不为空,则用var来代替string,不同的是当变量var为空的时候,不但用string替换${var:-string}/${var:=string},也会把string赋值给变量var
${var:-string}和${var:=string}效果是一样的
下面看个案例
$ vim t1.sh var1=123 #var2=456 A=${var1:-string} B=${var2:=string} echo ${A} ${B} ${var2} $ sh t1.sh 123 string string
${var:+string}
A=${var:+string}
替换规则和上面的相反,只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的)
来源:https://www.cnblogs.com/jasonminghao/p/12546149.html