步态与跨境追踪+人车轨迹识别+透镜建筑 一屏全局智慧港区升级
2026/6/12 19:14:55
${var:-default}- 临时默认值# 如果变量未设置或为空,使用默认值(不修改变量) username="${USERNAME:-guest}" echo "Hello, ${USERNAME:-guest}" # 变量本身值不变 echo "USERNAME is: $USERNAME" # 可能仍为空 # 实际应用 port="${PORT:-8080}" log_level="${LOG_LEVEL:-info}" timeout="${TIMEOUT:-30}"${var:=default}- 永久默认值# 如果变量未设置或为空,设置并使用默认值 : ${DATABASE_HOST:=localhost} # 冒号(:)是空命令 echo "Connecting to $DATABASE_HOST" # 简洁写法 : ${API_URL:="https://api.example.com"} : ${MAX_RETRIES:=3}# 带冒号(:): 检查未设置或为空 echo "${var1:-default}" # var1未设置或为空时返回"default" # 不带冒号: 仅检查未设置 unset var2 var3="" echo "${var2-default}" # 返回"default" (未设置) echo "${var3-default}" # 返回"" (已设置为空)| 语法 | 变量未设置 | 变量为空 | 变量非空 | 是否修改变量 |
|---|---|---|---|---|
${var-value} | 返回value | 返回$var | 返回$var | 否 |
${var:-value} | 返回value | 返回value | 返回$var | 否 |
${var=value} | 设置value | 返回$var | 返回$var | 是(仅未设置时) |
${var:=value} | 设置value | 设置value | 返回$var | 是(未设置或空时) |
${var?error} | 输出错误 | 返回$var | 返回$var | 否 |
${var:?error} | 输出错误 | 输出错误 | 返回$var | 否 |
${var+value} | 返回空 | 返回value | 返回value | 否 |
${var:+value} | 返回空 | 返回空 | 返回value | 否 |