Linux 与或操作符 (&& – ||) 实际上是‘与’和‘或’操作符的组合。
比如,我们ping www.baidu.com,如果成功打印‘已验证’,否则打印‘主机故障’。
执行语句和结果如图所示:
[tania@localhost demo]$ ping -c3 www.baidu.com && echo "已验证" || echo "主机故 障"
PING www.baidu.com (163.177.151.109) 56(84) bytes of data.
64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=1 ttl=128 time=33.0 ms
64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=2 ttl=128 time=32.0 ms
64 bytes from 163.177.151.109 (163.177.151.109): icmp_seq=3 ttl=128 time=33.0 ms
--- www.baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3147ms
rtt min/avg/max/mdev = 32.057/32.715/33.071/0.488 ms
已验证
[tania@localhost demo]$
当我们把网线拔掉时,命令执行结果如下:
[tania@localhost demo]$ ping -c3 www.baidu.com && echo "已验证" || echo "主机故 障"
ping: www.baidu.com: 未知的名称或服务
主机故障
[tania@localhost demo]$
其实该命令就是先执行判断条件,如果条件满足,就执行判断条件与符号“&&”连接的命令;否则就执行符号“||”后面的命令。
它很像‘if-else‘语句。(例如上面的语句我们用if-else脚本也可以完成)
#!/bin/bash
if ping -c3 www.baidu.com
then
echo "已验证"
else
echo "网络故障"
fi
脚本执行结果与终端命令行执行的结果一致。