我正在做一些 ping 测试。
这是什么ping -c 1
意思?这个命令有什么用?为什么我会在 bash 脚本中找到它?
答案1
该命令表示 ping 某物 1 次(1 次计数)。如果没有-c
,它会继续 ping IP 地址,直到您告诉它停止。在编写脚本时,我喜欢至少计数 2 次,以防第一次 ping 失败。
您可以使用它来检查 IP 地址是否有效,然后检查结果。
terrance@terrance-ubuntu:~$ ping -c 1 10.0.0.254
PING 10.0.0.254 (10.0.0.254) 56(84) bytes of data.
From 10.0.0.100 icmp_seq=1 Destination Host Unreachable
--- 10.0.0.254 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
terrance@terrance-ubuntu:~$ echo $?
1
上述1
意思是无法 ping 通该地址。
terrance@terrance-ubuntu:~$ ping -c 1 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.584 ms
--- 10.0.0.253 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.584/0.584/0.584/0.000 ms
terrance@terrance-ubuntu:~$ echo $?
0
以上0
表示命令没有错误退出。
因此在脚本中,您可以像这样使用它:
#!/bin/bash
ping -c 2 10.0.0.253
case $? in
0) echo "The host is alive.";;
1) echo "The host is not responding.";;
esac
希望这可以帮助!