Shell三元表达式
shell能否实现三元表达式呢?像下面这样:
int a = (b == 5) ? c : d;
实现方法:
a=$([ "$b" == 5 ] && echo "$c" || echo "$d")
原理:
&&的优先级比||高,所以如果前面的&&成功,后面的||就不会执行;相反,后面的||就会执行。
shell能否实现三元表达式呢?像下面这样:
int a = (b == 5) ? c : d;
实现方法:
a=$([ "$b" == 5 ] && echo "$c" || echo "$d")
原理:
&&的优先级比||高,所以如果前面的&&成功,后面的||就不会执行;相反,后面的||就会执行。