美文网首页
[ 1 -eq 1 ] && echo 11 || echo 2

[ 1 -eq 1 ] && echo 11 || echo 2

作者: 雨景江水 | 来源:发表于2023-07-05 08:04 被阅读0次

这种语法,是一个个从左往右一个个判断执行的

注1:
&& 前面整体的表达式状态码返回为真,才会执行后面的代码

|| 前面整体的表达式状态码返回为假,才会执行后面的代码

注2:这种结构的复合语句就是按照从左往右看的

注3:这种格式都是可以被if 语句取代的

一.

  1. [ 1 = 1 ] && echo 1 || echo 2
    :1
    [ 1 = 1 ] && echo 1 这个整体状态返回0,|| echo 2 就不执行了

  2. [ 1 = 2 ] && echo 1 || echo 2
    :2
    [ 1 = 2 ] 状态不为0,不执行echo 1, [ 1 = 2 ] && echo 1 整体状态不为0,执行|| echo 2

[ 1 -eq 1 ] || echo 11 || echo 22 && echo 33
:33

[ 1 -eq 2 ] || [ 1 -eq 1 ] || echo 22 && echo 33
:33

[root@iZwz909gageaynj30avzw5Z tmp]# [ 1 -eq 1 ] && echo 11 || echo 22
11

注:
&& 前面整体的表达式状态码返回为真,才会执行后面的代码

|| 前面整体的表达式状态码返回为假,才会执行后面的代码

二.
sum=0
for ((i=1;i<=100;i++))
do
test [i%2] -eq 0 && continue || let sum=sum+$i
done

三.
read -p "请输入一个正整数字:" number
[ number -eq 1 ] && echo "number不是质数" && exit
[ number -eq 2 ] && echo "number是质数" && exit

相关文章

网友评论

      本文标题:[ 1 -eq 1 ] && echo 11 || echo 2

      本文链接:https://www.haomeiwen.com/subject/suuugktx.html