变量测试操作

操作符名称作用语法
${var:-word}使用默认值var存在且非空→用var;否则用wordecho ${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开头进行声明的变量

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注