1、条件测试
(1)文件测试与整数测试
(2)字符串测试与逻辑测试
2、if语句结构
if语句包含单分支结构、双分支结构、多分枝结构,下面我们详细了解一下各分支有什么区别
(1)if单分支语句
如上图所示if单分支可以实现简单的判定,当我们条件满足我们设定的标准时就可以输出下一个命令,而不满足条件时则直接结束判定不会继续执行命令,例如下面案例我们需要判定挂载目录是否存在,如果不存在我们创建目录,如果存在则不执行创建命令
[root@kgc ~]# vi 1.sh
#!/bin/bash ###注释
MOUNT_DIR="/root/fang/" ###将"/root/fang/"赋予变量MOUNT_DIR
if [ ! -d $MOUNT_DIR ] ###用if判定,!表示不存在 -d表示测试是否为目录,这里的意思就是
判定目录不存在
then
mkdir -p $MOUNT_DIR ###如果不存在就会创建目录,如果存在这条命令就不会执行
fi
[root@kgc ~]# chmod +x 1.sh ###给1.sh添加执行权限
[root@kgc ~]# ./1.sh ###执行1.sh
[root@kgc ~]# ll ###查看一下,已经创建fang目录
drwxr-xr-x. 2 root root 6 Aug 26 07:44 fang
(2)if 双分支语句
双分支语句比单分支要多一个判断,如图,假设我们有一个httpd网站正在监听,那我们监听的端口就是80,正常我们输出的就是网站服务正在运行,否则我们执行的就是else,启动httpd服务。这里肯能不好理解,那我们换个案例来说,现在我们要ping一个网段看主机是存活并显示结果。
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &>/dev/null ####“-c” “-i” “-W”分别表示测试包 间隔 超时,并将
所有结果放到/dev/null中
if [ $? -eq 0 ] ### 如果这个放回值为0,那就符合我们的判定
then
echo "host $1 is up." ###输出为 host $1 up
else ###如果这个值为非0 那与我们判定的=0不同
echo "host $1 is down." ###输出为 host $1 down
fi
[root@kgc ~]# bash 6.sh 20.0.0.1 ###6.sh是我们刚刚编辑的脚本名,ip20.0.0.1则是我们
host 20.0.0.1 is down. ping的IP地址也是脚本$1的位参
[root@kgc ~]# bash 6.sh 20.0.0.2
host 20.0.0.2 is up.
if多分支语句
3、case多分支语句
开启关闭http服务实验需要线确保centos中已安装好httpd,否则没法进行实验