| 操作符 | 名称 | 作用 | 语法 |
|---|---|---|---|
${var:-word} | 使用默认值 | var存在且非空→用var;否则用word | echo ${name:-匿名} |
${var:=word} | 赋值默认值 | var存在且非空→用var;否则用word并赋值 | : ${PORT:=8080} |
${var:?word} | 错误检查 | var存在且非空→用var;否则输出错误退出 | : ${JAVA_HOME:?未设置} |
${var:+word} | 使用替代值 | var存在且非空→用word;否则返回空 | echo ${debug:+开启} |
| 场景 | var未定义或空 | var有值 | 是否改变var | 常用场景 |
|---|---|---|---|---|
${var:-word} | 用word | 用var | 不改变 | 默认值,不强制 |
${var:=word} | 用word并赋值 | 用var | 改变 | 设置默认配置 |
${var:?word} | 报错退出 | 用var | – | 强制必须存在 |
${var:+word} | 返回空 | 用word | 不改变 | 条件参数 |
1.${var:-word}
空值的输出

2.${var:=word}
一开始是空的,然后赋值ok,然后再echo ${var:=word}

3.${var:?word}
先unset var
然后输出结果

然后赋值 var=xuan

4.${var:+word}
先赋值var=xuan

然后unset后

| 操作符 | 一句话记忆 |
|---|---|
${var:-word} | 有就用,没有就用word(不改变) |
${var:=word} | 有就用,没有就用word并赋值 |
${var:?word} | 必须有,没有就报错退出 |
${var:+word} | 有就用word,没有就空 |
${!v*} 匹配之前所有以varprefix开头进行声明的变量
${!@} 匹配之前所有以varprefix开头进行声明的变量

发表回复