linux 三目运算符,Shell脚本:shell逻辑判断-三目运算符

?:;

等同于C语言中的if语句

if (表达式1)

表达式2;

else

表达式3;

而在bash shell 中也有类似的方式

echo $((2>1?2:1))

但是這里 $(()) 只能进行数值大小的判断

使用command进行三目运算应该这样使用

command1 && command2 || command3

在shell中,很多人理解为下面的if语句

if command1;then

command2

else

command3

fi

这是错误的,原因是没有深刻理解&& 和 ||

下面的命令很好的指出错误的原因

#date && echo "It's sunny today" || echo "the weather is terrible"

Thu Aug 20 11:09:35 EDT 2015

It's sunny today

#date && "It's sunny today" || echo "the weather is terrible"

Thu Aug 20 11:10:45 EDT 2015

-bash: It's sunny today: command not found

the weather is terrible

||会判断前一条命令的状态还回值,如果为false,就执行后面的语句

在这里 “It’s sunny today” 命令是错误的,于是

你可能感兴趣的:(linux,三目运算符)