《Linux就该这么学》读书笔记--4.3.1节【chkhost.sh脚本】
2022-02-14 01:52
在学习第4章,vim与shell命令脚本。
4.3.1节【chkhost.sh脚本】
[root@linuxprobe ~]# vim chkhost.sh #!/bin/bash ping -c 3 -i 0.2 -W 3 $1 &> /dev/null if [ $? -eq 0 ] then echo "Host $1 is On-line." else echo "Host $1 is Off-line." fi
ping命令,-c参数用来控制ping操作的次数,-i用来设置时间间隔(interval,间隔、间隙)。
其中,$1是对应执行命令时,第一个参数的值。也即执行下面脚本时,后面跟的IP地址。
[root@linuxprobe ~]# bash chkhost.sh 192.168.10.10 Host 192.168.10.10 is On-line. [root@linuxprobe ~]# bash chkhost.sh 192.168.10.20 Host 192.168.10.20 is Off-line.
$?对应的是显示上一次命令的执行返回值(4.2.2节)
-eq是整数比较运算符(4.2.3节),作用是判断“是否等于”。
【上机测试】
命令 &>> 文件 的作用是“将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)”(3.1节)。
课本TIPS:
/dev/null是一个被称作Linux黑洞的文件,把输出信息重定向到这个文件等同于删除数据(类似于没有回收功能的垃圾箱),可以让用户的屏幕窗口保持简洁。
下面一段及后附图片为【课本原文摘录】:
我们在4.2.3节中用过$?变量,作用是显示上一次命令的执行返回值。若前面的那条语句成功执行,则$?变量会显示数字0,反之则显示一个非零的数字(可能为1,也可能为2,取决于系统版本)。因此可以使用整数比较运算符来判断$?变量是否为0,从而获知那条语句的最终判断情况。这里的服务器IP地址为192.168.10.10,我们来验证一下脚本的效果: