shell脚本应用

本文详细讲解了条件测试(如test命令和if语句)在Linux脚本中的作用、特点及实例,涵盖了文件测试、整数和字符串比较、逻辑测试,以及if判断的单分支、双分支和多分支应用场景。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值