三元运算符(?:)在Bash中
有没有办法做这样的事情
int a = (b == 5) ? c : d;
使用Bash?
三元操作符? :
? :
只是if/else
简写形式
case "$b" in
5) a=$c ;;
*) a=$d ;;
esac
要么
[[ $b = 5 ]] && a="$c" || a="$d"
码:
a=$([ "$b" == 5 ] && echo "$c" || echo "$d")
如果条件仅仅是检查是否设置了一个变量,那甚至有一个更短的形式:
a=${VAR:-20}
将要分配给a
的值VAR
如果VAR
被设置,否则将分配给它的默认值20
-这也可以是一个表达的结果。
正如亚历克斯在评论中指出的,这种方法在技术上被称为“参数扩展”。
链接地址: http://www.djcxy.com/p/31485.html