首页 > 解决方案 > Linux shell 脚本中的“:”运算符

问题描述

我遇到了以下语法,我认为它看起来像 c++ 中的三元运算符,但在 bash 中搜索三元运算符会发现 bash (?) 中有一个三元运算符。

var_a=${var_b:-$var_c}

上面的语法是如何工作的。它的技术术语是什么?如果标题本身在某种程度上具有误导性,我们深表歉意。

标签: linuxbash

解决方案


它评估为$var_b,除非$var_b为空,在这种情况下它评估为$var_c

:-bash 手册页中查找:

${parameter:-word}

使用默认值。如果parameter未设置或为空,word则替换 的扩展。否则,parameter替换 的值。

其他类似:=的构造包括分配默认值、:?如果变量未设置则出错以及:+替换替代值。


推荐阅读