前言
今天我们来学习一下,shell中的条件测试以及if语句的分类和运用
条件测试
条件测试分为哪些呢、?大致分为四种
1,文件测试,
2,整数测试。
3,字符串测试
4,逻辑测试
test命令
test命令是测试表达式是否成立,若成立返回0 ,若不成立则返回其他的数值
格式
**格式有两种。
1, test 条件表达式
2 , [ 条件表达式 ]
**
文件测试
首先我们看下格式
[ 操作符 文件或目录 ]
常用的测试操作符有以下这些
1,-d 测试是否为目录
2,-e 测试目录或文件是否存在
3,-f 测试是否为文件
4,-r 测试当前用户是否有权限读取
5,-w 测试当前用户是否有权限写入
6,-x 测试当前用户是否有权限执行
整数测试
格式
[ 整数1 操作符 整数 2 ]
常用的测试操作符
1,-eq 等于
2,-ne 不等于
3,-gt 大于
4,-lt 小于
5, -le 小于或等于
6,-ge 大于或等于
整数值比较
格式;
[ 整数1 操作符 整数2 ]
字符串比较
这里分为两种格式
格式1 :[ 字符串1 = 字符串2]
格式2:[ -z 字符串 ]
!= 就是不等于
-z 测某一个字符串是否为空
逻辑测试
这里也有两个格式
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
格式2: 命令1 操作符 命令2
if 语句
单分支结构
if 条件测试操作
then 命令序列
fi
要切记这个 then不能少
双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
对分支结构
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
举例 电脑防火墙就是典型的多分支结构
##ng-# 单分支语句
判断挂载点目录,若不存在则自动创建
#!/bin/bash
MOUNT_DIR="/media/cdrom/" 当目录不存在时执行
if [ ! -d $MOUNT_DIR ]
then
mkdir -p $MOUNT_DIR
fi
双分支if语句
判断目标主机是否存活,显示检测结果
cat pinghost.sh
#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1 &> /bev/null
if [ $? -eq 0 ]
then
echo “host $1 is up.”
else
echo “host $1 is down.”
fi
多分支if 语句
case语句结构
多分支语句
总结
单分支,双分支,多分支,以及if 和case 有着多样的灵活性,只要掌这种规律就顺畅了