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 浮点运算字符串}’

目录
相关文章
|
2月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
59 0
|
3月前
|
Shell Linux C++
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
Linux C/C++ 开发(学习笔记二):Shell脚本编程案例
39 0
|
3月前
|
监控 Shell
在Shell脚本编程或命令行交互
在Shell脚本编程或命令行交互
28 3
|
7天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
27天前
|
存储 Java Shell
bigdata-04-shell编程基础
bigdata-04-shell编程基础
12 0
|
29天前
|
Shell Linux C++
【Shell 编程设计】 编写自己的清理后台的Shell脚本
【Shell 编程设计】 编写自己的清理后台的Shell脚本
30 1
|
29天前
|
存储 Shell 数据安全/隐私保护
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
【Shell 编程指南】Shell read命令 (从标准输入读取数值)
23 0
|
29天前
|
Shell C语言 C++
【Shell 编程指南】shell中的(),{}几种语法用法
【Shell 编程指南】shell中的(),{}几种语法用法
17 0
|
29天前
|
Shell 程序员 Linux
【Shell 编程指南】shell运算操作符之(())
【Shell 编程指南】shell运算操作符之(())
19 0
|
3月前
|
Shell
Shell 编程快速入门 之 函数基础知识
Shell 编程快速入门 之 函数基础知识
67 0
Shell 编程快速入门 之 函数基础知识