一. 前景提要
当我们打开一个终端,其实就是打开了一个交互式的shell程序,我们看到的包括PATH,HOME环境变量都是shell中定义的变量。
二. 变量替换
默认值:${parameter:-word} 如果 parameter 未设置或为空,则使用 word。
替代值:${parameter:=word} 如果 parameter 未设置或为空,则将 parameter 赋值为 word 并返回其值。
错误提示:${parameter:?word} 如果 parameter 未设置或为空,则打印 word 并退出。
替换值:${parameter:+word} 如果 parameter 已设置且非空,则返回 word。
unset var
echo ${var:-"default"}
# 输出:default
var="value"
echo ${var:="default"}
# 输出:value
unset var
echo ${var:?"var is not set"}
# 输出:var: var is not set
var="value"
echo ${var:+"replacement"}
# 输出:replacement
所以通过变量替换我们可以在执行自己的shell程序时,没有定义的变量进行排查