Shell三元表达式

shell能否实现三元表达式呢?像下面这样:

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

实现方法:

a=$([ "$b" == 5 ] && echo "$c" || echo "$d")

原理:

&&的优先级比||高,所以如果前面的&&成功,后面的||就不会执行;相反,后面的||就会执行。

posted @ 2020-03-18 22:15  IUNI_JM  阅读(7552)  评论(0编辑  收藏  举报