在bash
编程中,我总是按照以下长手方式定义条件变量
dog=1
if [[ $dog -eq 1 ]] ; then
cow=1
else
cow=0
fi
这显然是极其低效的。我MATLAB
可以执行以下操作
cow=(dog==1)
即一行而不是五行。在 bash 中是否有类似的方法可以做到这一点?感谢您的任何建议。
答案1
对于纯粹基于整数的赋值,您可以使用expr ? expr : expr
条件运算符:
dog=1
cow=$((dog ? 1 : 0))
这仅适用于牛和狗的整数值,并且仅测试(此处为狗)零/非零值。
dog=2
cow=$((dog ? 42 : 7))