扩展变量是指在shell脚本中用于实现条件判断和变量操作的特殊语法。具体来说,它允许根据特定条件执行不同的操作或返回不同的值。
- 扩展变量可以用来测试变量是否存在或者是否为空。
- 如果待测变量不存在或者为空,可以返回一个默认值。
- 例如,在${待测变量:-默认值}中,如果待测变量不存在或为空,则返回"默认值"。
- 如果待测变量存在且非空,直接返回该变量的值。
- 例如,在${待测变量:-默认值}中,如果待测变量存在且非空,则返回该变量的值。
- 如果待测变量不存在或者为空,可以返回一个默认值。
- 扩展变量也可以给空值变量赋值。
- 如果待测变量为空,可以为其赋一个默认值。
- 例如,在${待测变量:=默认值}中,如果待测变量为空,则为其赋值为"默认值"。
- 如果待测变量存在且非空,直接返回该变量的值。
- 例如,在${待测变量:=默认值}中,如果待测变量存在且非空,则返回该变量的值。
- 如果待测变量为空,可以为其赋一个默认值。
- 扩展变量还可以触发错误信息。
- 如果待测变量不存在或为空,可以显示一个错误消息。
- 例如,在${待测变量:?错误信息}中,如果待测变量不存在或为空,则显示"错误信息"。
- 如果待测变量存在且非空,直接返回该变量的值。
- 例如,在${待测变量:?错误信息}中,如果待测变量存在且非空,则返回该变量的值。
- 如果待测变量不存在或为空,可以显示一个错误消息。
这些功能使得扩展变量在shell脚本中非常有用,因为它可以帮助开发者更好地控制程序流程并处理各种情况。
条件式 | 目的 | 判断条件 | 符合的动作 | 不符合的动作 |
---|---|---|---|---|
${待测变量:-默认值} | 返回一个非空值 | 测试不存在或者为空 | 返回“默认值” | 返回变量值 |
${待测变量:=默认值} | 给空值变量赋值 | 测试不存在或者为空 | 为变量赋值 | 返回变量值 |
${待测变量:?默认值} | 检查条件是否完备 | 测试不存在或者为空 | 变量不存在时,提示信息 | 返回变量值 |
${待测变量:+默认值} | 判断某事是否为真 | 测试存在或者非空 | 返回“默认值” | 返回空值 |