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

2023-07-05  本文已影响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

上一篇 下一篇

猜你喜欢

热点阅读