当前位置: 首页 > article >正文

从0开始学习Linux——Shell编程详解【03】

 期目录:

从0开始学习Linux——简介&安装

从0开始学习Linux——搭建属于自己的Linux虚拟机

从0开始学习Linux——文本编辑器

从0开始学习Linux——Yum工具

从0开始学习Linux——远程连接工具

从0开始学习Linux——文件目录

从0开始学习Linux——网络配置

从0开始学习Linux——防火墙配置

从0开始学习Linux——系统服务管理

从0开始学习Linxu——系统常用命令

从0开始学习Linux——进程管理

从0开始学习Linux——用户管理

从0开始学习Linux——文件管理

从0开始学习Linux——Shell编程详解【01】

从0开始学习Linux——Shell编程详解【02】

上期教程我们学习了Shell编程中的数据类型、运算符等知识点,这期教程我们将学习控制语句。

Shell 提供了多种控制语句来帮助我们控制程序的流程。控制语句可以分为 条件判断语句、循环语句 和 跳转语句 等几类。

 一、条件判断语句

条件判断语句用于根据某个条件的真假来决定执行不同的代码块。常用的条件判断语句有if、if-else、if-elif-else和case。

1.1 if语句

if [ 条件判断语句 ]; then
  如果为真就执行代码
fi

上述代码中"[条件判断语句]"可以通过变量和上期教程所学的运算符进行组合。

1.2 if-else语句

if [ 条件判断语句 ]; then
  如果为真就执行代码
else
  如果为假就执行代码
fi

1.3 if-elif-else语句

if [ 条件判断语句1 ]; then
  如果条件判断语句1为真就执行代码
elif [ 条件判断语句2 ]; then
  如果条件判断语句2为真就执行代码
else
  如果两个条件判断语句都为假就执行代码
fi

注意:if、elif、else语句可以灵活的进行组合。

 1.4 case语句

case语句可以根据不同的模式来执行不同的代码块,通常用于替代多个if-elif-else判断。

case $变量 in
  匹配1)
    符合匹配1选项就执行代码
    ;;
  匹配2)
    符合匹配2选项就执行代码
    ;;
  *)
    符合匹配3选项就执行代码
    ;;
esac

二、循环语句

循环语句用于重复执行代码块,直到满足特定条件。常见的循环语句有for、while和until。

2.1 for循环

for循环用于在特定的范围或集合中遍历元素。

for var in list; do
  循环体代码
done

2.2 while循环

while循环会一直执行,直到条件不再满足。

while [ condition ]; do
  循环体代码
done

 2.3 util循环

utils循环和while循环类似,但它会在条件为“假”时执行代码块。

until [ condition ]; do
  循环体代码
done

 2.4 循环结束

如果我们想要在某个时候去结束循环语句,我们可以使用break、continue、exit关键字。

2.4.1 break关键字

break关键字用于跳出当前的循环,通常在满足某些条件时停止循环。

 注意:break关键字用于结束离break关键字最近的循环。

2.4.2 continue关键字

continue关键字用于跳过当前的循环迭代,直接进入下一次迭代。

 2.4.3 exit关键字

exit关键字用于退出整个脚本,可以指定退出码。

补充:辨析(())和[]

  • [...]是用于常规的字符串、数值或文件条件测试。
  • ((...))是用于数值计算和条件判断的,例如(i % 2 )或 (i % 2 == 0)。

 本节教程就先到这里,更多内容将在后续教程中展示出来。


http://www.kler.cn/a/406536.html

相关文章:

  • 小鹏汽车智慧材料数据库系统项目总成数据同步
  • 使用过vue之后,对vue的有了更深入的理解?
  • 优化注意力层提升 Transformer 模型效率:通过改进注意力机制降低机器学习成本
  • Mono Repository方案与ReactPress的PNPM实践
  • 数据结构-树状数组专题(2)
  • 【软件入门】Git快速入门
  • windows C#-异步返回类型(下)
  • Javaweb web前端标签样式正文
  • 【AI赋能电商】数据分析和训练精准导向
  • Web前端演示:管道与支架检测
  • 香豆烤馍:传统美食中的烟火记忆
  • 深入理解Go语言并发编程:从基础到实践
  • Spring6 IOC 全注解式开发
  • Ribbon 入门实战指南
  • 推荐几个 VSCode 流程图工具
  • streaming消费kafka手动维护offset到redis
  • 如何快速开发一款AI小程序?基于微信云开发的实战指南
  • tdengine学习笔记-建库和建表
  • Ubuntu上安装MySQL并且实现远程登录
  • Redis中常见的数据类型及其应用场景
  • 【机器学习】决策树算法原理详解
  • 1.langchain中的prompt模板(Prompt Templates)
  • 直播预告| 深入探索 DB-GPT GraphRAG 的设计解读与优化
  • 【K8S问题系列 |18 】如何解决 imagePullSecrets配置正确,但docker pull仍然失败问题
  • [Redis#2] 定义 | 使用场景 | 安装教程 | 快!
  • 聊聊主流几个JDK版本:JDK 8、JDK 11、JDK 17 和 JDK 21 的区别