shell脚本中的&&、||、&和|

shell脚本中的&&和||,判断的标准是:判断的程序退出状态,为0是真,为1是假(相当于c++中的return,return 0就是没问题,否则就是有问题)

eg:

test -e test.sh && echo "exist" || echo "Not exist"

此语句可以判断test.sh是否存在,如果存在输出exist,不存在输出Not exist
解析:
如果test.sh存在,test -e test.sh为真,echo "exist"也为真,此时||左边整个条件的结果为真,则跳过echo “Not exist”;
如果test.sh不存在,test -e test.sh为假,则跳过echo “Not exist”,此时||左边整个条件的结果为假,则输出Not exist
(即echo “exist” 和 echo "Not exist"单条语句的结果都为真)


shell脚本中的&意思是把当前命令放到后台运行;
shell脚本中的|意思将 ‘|’前面命令的输出当做后面命令的输入

shell脚本中的&和|也可作逻辑运算符,那既然是逻辑运算符,则0就代表假,1就代表真
|
如果第一个参数非空且非0,则返回第一个参数的值,否则返回第二个参数的值,但要求第二个参数的值也是非空或非0,否则返回0。如果第一个参数是非空或非0时,不会计算第二个参数。
&
如果两个参数都非空且非0,则返回第一个参数,否则返回0。如果第一个参为0或为空,则不会计算第二个参数,直接输出0。

举个例子:

a=3
b=4
c=0
d=5

echo `expr $c \& $d`  # 输出0  c为0,直接输出0
echo `expr $a \& $b`  # 输出3  a和b都不为0,则输出第一个参数a的值
echo `expr $c \| $d`  # 输出5  c为0,d不为0,则输出d的值
echo `expr $a \| $b`  # 输出3  a不为0,直接输出a的值
echo `expr $a \| $a`  # 输出0  两个参数都为0,则输出0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏过山河,踏过海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值