有这样的方法吗

int a = (b == 5) ? c : d;

使用Bash ?


当前回答

简单的三元

brew list | grep -q bat && echo 'yes' || echo 'no'

此示例将确定您是否使用自制程序安装bat

如果是,你会看到"是"

如果是false,你会看到"no"

我在这里添加了-q来抑制grepped字符串输出,所以你只能看到“yes”或“no”

真正的模式是这样的

doSomethingAndCheckTruth && echo 'yes' || echo 'no'

用bash和zsh测试

其他回答

(ping -c1 localhost&>/dev/null) && { echo "true"; } || {  echo "false"; }

如果条件仅仅是检查是否设置了变量,甚至还有更短的形式:

a=${VAR:-20}

如果VAR已设置,则会将VAR值赋给a,否则将为其赋值默认值20——这也可以是表达式的结果。

这种方法在技术上称为“参数展开”。

(( a = b==5 ? c : d )) # string + numeric

简单的三元

brew list | grep -q bat && echo 'yes' || echo 'no'

此示例将确定您是否使用自制程序安装bat

如果是,你会看到"是"

如果是false,你会看到"no"

我在这里添加了-q来抑制grepped字符串输出,所以你只能看到“yes”或“no”

真正的模式是这样的

doSomethingAndCheckTruth && echo 'yes' || echo 'no'

用bash和zsh测试

let命令支持大多数基本操作符:

let a=b==5?c:d;

当然,这只适用于分配变量;不能执行其他命令。