千家信息网

Linux丨shell语句while和until和case使

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,一、简介平时工作中有不少重复的工作,并且无法统计需要循环该执行多少次,这个时候就需要while或者until循环语句帮助你解决一些繁琐重复性的工作。而case 语句是匹配一个值或一个模式,如果匹配成功
千家信息网最后更新 2024年11月21日Linux丨shell语句while和until和case使

一、简介

平时工作中有不少重复的工作,并且无法统计需要循环该执行多少次,这个时候就需要while或者until循环语句帮助你解决一些繁琐重复性的工作。而case 语句是匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。一般我们脚本会用到这个多分支选择结构。本章节就是介绍以上3个语句的简单入门用法。


二、shell循环语句

1.while循环语句

最常见的一种满足条件就进入循环的语句, 当条件满足时,while 重复地执行一组语句,直到条件不满足时,才退出 while 循环。

语法:

PS:【判断条件请查看shell的条件判断语句相关知识】

while 循环的执行流程:

首先是对条件进行判断,如果条件成立,进入循环,执行 while 循环体中的语句(是 do 和 done 之间的语句,这样就完成了一次循环)

每一次执行到 done 的时候都会重新判断条件是否满足,如果满足,就进入下一次循环,继续执行 do 和 done 之间的语句,如果不满足,就结束整个 while 循环,执行 done 后面的其它 Shell 代码或者直接退出。

例子1: 批量创建用户

运行结果:

例子2:计算从1加到1000的和

执行结果:

可以看到while语句的应用只是简单的一个循环语句,文本只是举一个简单的例子说明来展示while语句,实现复杂的工作还是需要熟悉条件判断语句,这样才能更好地写出脚本。

2.until循环语句

和while实现同样的功能,但是流程不一样,是一种不满足条件就执行循环的语句,直到条件满足就退出循环。

语法:

until循环的执行流程:

首先是条件进行判断,如果条件不满足,进入循环,执行until循环体中的语句(是 do 和 done 之间的语句,可能是多个语句,这样就完成了一次循环)

每一次执行到 done 的时候都会重新判断条件是否不满足,如果不满足,就进入下一次循环,继续执行 do 和 done 之间的语句,如果满足,就结束整个until循环,执行 done 后面的其它 Shell 代码或者直接退出。

例子1: 批量创建用户(和while对比一下)


三、shell分支结构语句

1.分支结构:case语句(根据变量的不同取值 ,执行不同的操作)通常case结构和shell函数一起使用,给源码服务编写启动脚本。case 语句和 if...elif...else 语句,同一种类型都是多分支条件语句。

2.语法:

3.case 语句的工作流程:

case语句会取出变量中的值(就是你在命令行输入的值),然后与语句体中每个分支的值逐一匹配。如果数值匹配,则执行对应分支的程序;如果数值不匹配,则依次进行下一个值的匹配;如果所有的值都不匹配则执行"*)","*"代表所有其他值中的程序,一般是写明变量有哪些可以填写。

4.注意点

(1)case 语句以"case"开头,以"esac"结尾。

(2)在每个分支程序之后要以";;"(双分号)结尾,代表该程序段结束。

5.例子

(1)Ubuntu系统中iptables是没有启动脚本的,我们可以通过case语句做一个简单的开启关闭脚本。定义Iptables配置存放位置/etc/iptables.rule【我做了一下基本的预设置】

执行结果如下:

这样设置了iptables的启动脚本是不是方便多了,只需要去修改配置文件,重启iptables脚本即可生效。按照这样的例子,自己可以把一些源码包的程序制作成一个启动脚本,赶紧去试一试吧!




语句 循环 条件 脚本 分支 例子 程序 工作 之间 流程 结构 变量 时候 结果 语法 不同 代码 代表 只是 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏一站式软件开发工具 mysql 数据库格式 国家网络安全重要 2020国家网络安全宣 云数据库原理讲解 网络安全受到黑客攻击 公民能为网络安全做些什么 河南苹果软件开发多少钱 河北邢台市网络安全宣传周 大学网络技术以后就业 我的世界服务器无限宝箱教程 天心区网络安全和信息化 对网络技术的了解与认识 软件开发常用的需求工具 软件开发技术学的是什么 会话管理和业务管理服务器 计算机数据库基础实验习题 公司的软件开发在本地用什么 数据库原理应用课后答案 大话西游傲雪凌霜服务器合区 网络安全执法检查什么 宁夏大学网络安全学院 双流常委会 网络安全 太原东杰软件开发有限公司电话 对网络安全职业的认识 电脑服务器升级改造账务处理 100万玩游戏需要多大服务器 软件开发合同延期约定 互联网技术是科技吗 易胜进销存设置数据库连接
0