这种语法,是一个个从左往右一个个判断执行的
注1:
&& 前面整体的表达式状态码返回为真,才会执行后面的代码
|| 前面整体的表达式状态码返回为假,才会执行后面的代码
注2:这种结构的复合语句就是按照从左往右看的
注3:这种格式都是可以被if 语句取代的
一.
-
[ 1 = 1 ] && echo 1 || echo 2
:1
[ 1 = 1 ] && echo 1 这个整体状态返回0,|| echo 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不是质数" && exit
[ number是质数" && exit
网友评论