shell脚本应用

一、条件测试的作用和特点
1)条件测试的作用
判断真或者假,一般判断作为脚本运行的条件
2)条件测试的特点
条件测试结果为真或假
通过条件判断决定运行脚本或者停止脚本运行
2、使用条件测试的语法结构
1)test
Test 条件表达式
2)方括号[ ]
[ 条件表达式 ]
3、文件测试
1)文件测试常见的选项
-d:判断是否为目录
-f:判断是否为文件
-e:测试目录或者文件是否存在
-r:测试用户对文件或者目录是否有读取权限
-w:测试用户对文件或者目录有写入权限
-x:测试用户对文件目录是否有执行权限
2)测试/etc是否是一个目录
[ -d /etc ] 测试etc是否是目录
echo $? 查看测试结构0正确非0错误
在这里插入图片描述
3)使用test命令测试
[[email protected] ~]# test -d /etc/ 测试etc是否有目录
[[email protected] ~]# echo $? 显示测试结果
在这里插入图片描述
4)使用条件测试直接显示结果
[[email protected] ~]# [ -d /etc ] && echo “True” 测试为真显示True
在这里插入图片描述
4、整数值的比较
1)整数值比较常见的选项
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
2)判断10是否大于5,条件判断成功显示True
[[email protected] ~]# [ 10 -ge 5 ] && echo “true”
在这里插入图片描述
3)判断登录系统的账户
[[email protected] ~]# user=who | wc -l
[[email protected] ~]# [ $user -le 2 ] && echo “登录系统用户小于或者等于2”
在这里插入图片描述
5、字符串比较
1)字符串比较常见的选项
=:第一个条件和第二个条件是否相同
!=:第一个条件不等于第二个条件
-Z:判断字符内容是否为空
2)判断系统的字符编码是否支持中文
[[email protected] ~]# [ $LANE = “zh_CN.UTF-8” ] && echo “系统只支持中文 !!”
在这里插入图片描述
3)判断系统是英文或者中文
[[email protected] ~]# [ $LANG != “en.US” ] && echo “系统不支持英文 !!”
在这里插入图片描述
6、逻辑测试
1)逻辑测试常见的选项
-a:或者使用&&,两个条件为真显示结果
-o:或者使用||,两个条件匹配任意一个真显示结果
!:逻辑否,不匹配结果
2)使用&&测试
[[email protected] ~]# [ -d /etc ] && [ -d /usr ] && echo “yes”
在这里插入图片描述
3)使用||两个测试结果匹配任意一个显示yes
[[email protected] ~]# [ -d /etc ] || [ -d /aa ] && echo “yes”
在这里插入图片描述
二、if判断的应用
1、单分支if判断
if 条件
then
命令序列
fi
2)判断是否一个目录存在,如果不存在自动创建目录
[[email protected] ~]# vim test.sh
#!/bin/bash
DIR="/benet"
if [ ! -d $DIR ]
then
mkdir /benet
fi
[[email protected] ~]# chmod +x test.sh
[[email protected] ~]# ./test.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)运行脚本
[[email protected]entos01 ~]# sh test.sh
在这里插入图片描述
2、双分支if判断
1)双分支if判断格式
if 条件
then
命令序列1
else
命令序列2
fi
2)测试目标主机连通性脚本
[[email protected] ~]# vim test01.sh
#!/bin/bash
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo “HOST $1 IS UP!!”
else
echo “HOST $1 IS DOWN!!”
fi
[[email protected] ~]# chmod +x test01.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)运行脚本
[[email protected] ~]# sh test01.sh 192.168.100.10
在这里插入图片描述
在这里插入图片描述
3、if多分支判断
1)if多分支判断的格式
if 条件1;
then
命令序列1
elif 条件2
then
命令序列2
else
命令序列3
fi
2)多分支if的应用
[[email protected] ~]# vim test02.sh
#!/bin/bash
read -p “请输入等级成绩:” test
if [ $test -ge 85 ] && [ t e s t − l e 100 ] t h e n e c h o " test -le 100 ] then echo " testle100]thenecho"test分,恭喜达到优秀!!"
elif [ $test -ge 70 ] && [ t e s t − l e 84 ] t h e n e c h o " test -le 84 ] then echo " testle84]thenecho"test分,恭喜达到合格!!"
else
echo “$test分,不合格,还需继续努力!!!”
fi
[[email protected] ~]# chmod +x ./test02.sh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3)运行脚本输入成绩进行判断
[[email protected] ~]# ./test02.sh
请输入等级成绩:90
90分,恭喜达到优秀!!
在这里插入图片描述
在这里插入图片描述
文件测试
在这里插入图片描述
判断物理内存当前缓存磁盘大小,低于1024输出时
在这里插入图片描述
字符串比较
在这里插入图片描述
在这里插入图片描述
确认交互过程
在这里插入图片描述
单分支if语句应用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双分支if语句应用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多分支if语句应用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述