Shell编程之条件语句(二)

简介: Shell编程之条件语句(二)

六、if语句


#单分支
if[ 表达式 ];then
 ...
fi
#双分支
if [ 表达式 ];then
 ...
else
 ...
fi

6.1 案例1

[root@localhost/data/sh]# vim ping.sh
#!/bin/bash
#判断主机是否存活
#ping -c 3 -i 0.5 -w 2 $1 &> /dev/null && echo "$1 is online" || echo "$1 is offline"
#发三个包,每隔5秒,注释的为三元运算符方法
ping -c 3 -i 0.5 -w 2 $1 &> /dev/null
if [ $?-eq 0 ];then 
    echo "$1 is online"
else
    echo "$1 is offline"
fi



6.2 单分支案例2

磁盘空间已用大于80%报警



#!/bin/bash
#磁盘空间已用大于80%报警 
USED=$(df |grep /dev/mapper/centos-root | awk '{print $5}'|awk -F '%' '{print $1}')
#将取到的值赋给USED
if [ $USED -gt 40 ];then
#为了方便演示,改为40
        echo "警告!当前/目录的磁盘使用率超过为$USED%"
fi



6.3 双分支案例3


[root@localhost/data/sh]# vim netstat.sh
#!/bin/bash
netstat -natp |grep :80 &> /dev/null
#查看端口
if [ $? -eq 0 ]
then
        echo "网站服务已在运行!"
else
        if rpm -q httpd &> /dev/null
        #查看软件是否安装
        then
                echo "正在启动httpd服务"
                systemctl start httpd
        else
                echo "正在安装并启动httpd服务"
                yum install -y httpd &> /dev/null && systemctl start httpd &> /dev/null
        fi
fi



6.4 多分支案例4

#!/bin/bash
read -p "请输入你的考试分数:" grade
if [ $grade -ge 85 ]&& [ $grade -le 100 ]
then
    echo "你的成绩为$grade"
    echo "你的成绩为优秀"
elif [ $grade -ge 70 ]&&[ $grade -le 84 ]
then
    echo "你的成绩为$grade"
    echo "你的成绩为良好"
elif
[ $grade -ge 60 ]&&[ $grade -le 69 ]
then
    echo "你的成绩为$grade"
    echo "你的成绩为合格" 
else
    echo "你的成绩为$grade"
    echo "你的成绩不合格"
fi



七、case语句


if的多分支是逐条判断,相对而言效率会低一些,而case语句,不满足的条件直接跳过,相对执行效率快一些


7.1 案例case并行判断

[root@localhost/data/sh]# vim case.sh
#!/bin/bash
#判断分数等级
read -p "请输入你的分数:(0-100)" num
case $num in
100)
        echo "恭喜你获得$num 分"
;;
[89][0-9])
#80-99
        echo "优秀!获得$num 分"
;;
[67][0-9])
#60-79
        echo "获得$num 分继续努力" 
;;
[0-9] | [1-5][0-9])
#0-59
        echo "继续努力!获得$num 分"
;;
*)
        echo "输入有误,请重新输入"
esac



八、总结


8.1 定义一个变量的方法

1.read -p 执行时显示提示信息变量名


2.变量名=变量值


export +变量名 生成为全局变量


8.2 浮点数的运算

echo "浮点运算字符串” Ibc


awk 'BEGIN{print 浮点运算字符串}’

目录
相关文章
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
4月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
2月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
3月前
|
Shell
Shell编程(下)
Shell编程(下)
115 1
|
3月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
58 1
|
3月前
|
Shell Linux 开发工具
|
3月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
92 12
|
4月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
4月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
61 12
|
4月前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
60 5