【Linux】shell脚本实战-if多分支条件语句详解
文章目录
- 前言
- 多分支语句的语法
- 多分支语句举例:
- 1. 出嫁的条件
- 2. 管理http服务实战脚本
- 3. 猜数字游戏v1版本-if版本
- 总结
前言
前面我们已经学习过单分支语句和双分支语句的使用。 双分支语句就是在单分支语句的基础上又加了一层结果项。
今天我们来探讨下多分支语句,顾名思义,多分支语句就是在双分支语句基础上又加了一个可能性的结果
如果你还没有学习单双分支条件语句,建议参考下方链接学习:
【Linux】shell脚本实战-if单双分支条件语句详解
多分支语句的语法
语法结构:
if条件测试操作1 ; thencommands
elif 条件测试操作2 ; thencommands
elif 条件测试操作3 ; thencommands
.......
elsecommands
fi
举例:
if [ 你有钱 ]then我就嫁给你
elif [ 家庭有背景 ]then也嫁给你
elif [ 有权 ]then也嫁给你
else我考虑下
fi
多分支语句的图示:
多分支语句举例:
1. 出嫁的条件
[root@ecs-c13b ~]# cat ifdtest1
#!/bin/bash
read -p "请输入你有多少钱: " money
read -p "请输入你有几套房子: " housesif [ $money -ge 1000000 ] ### ge 表示大于thenecho "我就嫁给你"
elif [ $houses -ge 3 ]thenecho "我也嫁给你"
elseecho "我考虑下"
fi
返回结果:
[root@ecs-c13b ~]# bash ifdtest1
请输入你有多少钱: 100000
请输入你有几套房子: 5
我也嫁给你
2. 管理http服务实战脚本
[root@ecs-c13b html]# cat httpdcheck.sh
#!/bin/bash
ss -lntp |grep httpd &> /dev/null
if [ $? -eq 0 ];thenecho "httpd is running"
elif [ -f /usr/local/apache/bin/apachectl -a -x /usr/local/apache/bin/apachectl ]
### 查看文件是否存在且是否有可执行权限then/usr/local/apache/bin/apachectl start#### 如果有可执行权限,且存在,就执行脚本启动
elseecho "没有httpd的启动脚本"
fi
返回结果:
[root@ecs-c13b html]# bash httpdcheck.sh
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, usingrName' directive globally to suppress this message
[root@ecs-c13b html]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 31393 root 4u IPv6 363012 0t0 TCP *:http (LISTEN)
httpd 31394 daemon 4u IPv6 363012 0t0 TCP *:http (LISTEN)
httpd 31395 daemon 4u IPv6 363012 0t0 TCP *:http (LISTEN)
httpd 31399 daemon 4u IPv6 363012 0t0 TCP *:http (LISTEN)
[root@ecs-c13b html]# bash httpdcheck.sh
httpd is running
3. 猜数字游戏v1版本-if版本
#!/bin/bash
NO=20read -p "input your num: " num
if [ $NO -gt $num ]; then ### 判断输入的数字和原始数字的大小,gt表示大于echo "你猜测的太小了"
elif [ $NO -lt $num ]; then ####判断输入的数字和原始数字的大小,lt表示小于echo "你猜测的太大了"
else echo "恭喜你猜对了"fi
返回结果:
[root@ecs-c13b html]# vim guess.sh
\[root@ecs-c13b html]# bash guess.sh
input your num: 33
你猜测的太大了
[root@ecs-c13b html]# bash guess.sh
input your num: 1
你猜测的太小了
[root@ecs-c13b html]# bash guess.sh
input your num: 20
恭喜你猜对了
总结
多条件语句相对单双条件语句来说,稍微困难一些,但只要稍加练习就可以熟练。
【Linux】shell脚本实战-if多分支条件语句详解相关推荐
- 【Linux】shell脚本实战-if单双分支条件语句详解
文章目录 if单分支 1. 单分支语法分析 2. 单分支语法规范 if双分支语法分析 3. if单分支和双分支脚本举例 a. 检查是否为超级用户(双分支) b. 找一个金钱大于1000000的结婚(单 ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- linux expect 输入密码,shell脚本无密码登录 expect的使用方法详解
shell脚本无密码登录 expect的使用方法详解 今天需要做一个定时任务脚本将最新的数据包文件传到远程的服务器上,虽然有密钥但也是要求输入密码的那种,所以只能另想办法实现让脚本自动输入密码了. 从 ...
- shell脚本编程神器之awk语法案例详解
AWK入门指南 文章目录 shell脚本编程神器之awk语法案例详解 安装AWK AWK 起步示例 AWK程序的结构 执行 awk 程序 awk 的错误提示 简单输出 打印每一行 打印特定行 NF,字 ...
- 【Shell】20天学会shell脚本命令(2)变量的详解
一.问题 1.1.环境 电脑环境:Windows 10: Docker版本:Server Version: 19.03.3 1.2.问题 shell脚本一直是Linux的必回只语言:就像去英语系国家工 ...
- 【Python从零到壹】Python条件语句详解
欢迎大家来到互联网老辛的专栏<Python从零到壹>,在这里我将分享约300篇Python系列文章,所有文章都将结合案例.代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望 ...
- Python基础必掌握的条件语句详解
Python 中的条件语句根据特定布尔约束的计算结果为真或假,执行不同的计算或操作.条件语句由 Python 中的 IF 语句处理. 到目前为止演示的代码都是由顺序执行组成的.但是实际情况是通常程序需 ...
- linux spec 脚本,RPM包制作之Spec文件详解
看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...
- python条件语句-Python if else条件语句详解
前面我们看到的代码都是顺序执行的,也就是先执行第1条语句,然后是第2条.第3条--一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...
最新文章
- 《星辰变OL》估计很多人看过这书
- 实用插件_这些实用的PR插件你知道吗?
- 机器学习——逻辑回归算法
- (二)深度学习数据处理-----图片数据处理
- 华为p4用鸿蒙系统吗_华为p40pro是鸿蒙系统吗
- java动态代理模式
- HTML 变形(transform)、转换(transition)和动画(animation)
- (转载)c#常用的资料
- SQLServer数据库处于恢复挂起状态的解决办法
- 借助excel工具进行多元线性回归模型的建立及案例分析
- android手机接投影仪,只需一招, 手机也能连接投影仪!
- Ubuntu 最好用的CHM阅读器KchmViewer
- 运动会分数统计(数据结构课程设计)
- Possible missing firmware /lib/firmware/rtl_nic/rtl8168fp-3.fw for module r8169
- 华大芯片入坑系列-1
- 中国版的Google被阉割掉多少?
- DS18B20读取温度
- 分享124个PHP源码,总有一款适合您
- 美国ESS-HIFI音频解码芯片ES9023P
- [Codeforces1238G]Adilbek and the Watering System
热门文章
- 服务器修改bios,DELL服务器利用OMSA修改BIOS
- YOLOv5白皮书-第Y3周:yolov5s.yaml文件解读
- 手把手带你实现JAVA自定义异常和全局异常处理
- 光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟
- IDEA配置JDK、Maven 常见错误总结
- 【分布式数据网格】如何超越单片数据湖迁移到分布式数据网格
- WIN10远程桌面连接发生身份验证错误(错误代码:0x800706be)
- cetus系列~ 继续分析
- 文件+树,图书目录管理系统
- dell电脑装linux raid无法安装系统,系统定制安装遇到RAID卡无法安装的解决方案