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

Shell——流程控制语句(if、case、for、while等)

在 Shell 编程中,流程控制语句用于控制脚本的执行顺序和逻辑。这些语句包括 ifcaseforwhile 等,它们的使用可以使脚本实现更复杂的逻辑。以下是它们的详细说明和语法结构:

1. if 语句

if 语句用于条件判断,执行符合条件的代码块。

语法结构
if [ condition ]; then# 当 condition 为真时执行的语句
elif [ another_condition ]; then# 当 another_condition 为真时执行的语句
else# 当上述条件都不满足时执行的语句
fi

示例

#!/bin/basha=10
b=20if [ $a -gt $b ]; thenecho "a is greater than b"
elif [ $a -lt $b ]; thenecho "a is less than b"
elseecho "a is equal to b"
fi

2. case 语句

case 语句用于多分支选择,通常用于替代 if-elif-else 结构,当需要判断的条件较多时特别有用。

语法结构
case expression inpattern1)# 当 expression 匹配 pattern1 时执行的语句;;pattern2)# 当 expression 匹配 pattern2 时执行的语句;;*)# 默认情况下执行的语句;;
esac

示例

#!/bin/bashday="Monday"case $day in"Monday")echo "Start of the work week";;"Friday")echo "End of the work week";;"Saturday"|"Sunday")echo "It's the weekend!";;*)echo "Midweek day";;
esac

3. for 循环

for 循环用于遍历列表中的每一个元素,通常用于处理数组或一系列的值。

语法结构
for variable in list; do# 对 list 中的每个 variable 执行的语句
done

示例

#!/bin/bashfor i in 1 2 3 4 5; doecho "Number: $i"
done# 或者使用 C 风格的 for 循环
for ((i=1; i<=5; i++)); doecho "Number: $i"
done

4. while 循环

while 循环在条件为真时重复执行一段代码,直到条件为假时停止。

语法结构
while [ condition ]; do# 当 condition 为真时执行的语句
done

示例

#!/bin/bashcount=1while [ $count -le 5 ]; doecho "Count: $count"count=$((count + 1))
done

5. until 循环

until 循环与 while 循环相反,条件为假时重复执行代码块,直到条件为真时停止。

语法结构
until [ condition ]; do# 当 condition 为假时执行的语句
done

示例

#!/bin/bashcount=1until [ $count -gt 5 ]; doecho "Count: $count"count=$((count + 1))
done

总结

  • if 语句用于条件判断和分支执行。
  • case 语句用于多分支选择,适合匹配多个模式。
  • for 循环用于遍历列表或执行固定次数的循环。
  • whileuntil 循环用于在条件满足时反复执行某些代码。
  • breakcontinue 控制循环的执行流。
http://www.lryc.cn/news/426727.html

相关文章:

  • 【redis的大key问题】
  • HighPoint SSD7749M2:128TB NVMe 存储卡实现28 GB/s高速传输
  • ARM 裸机与 Linux 驱动对比及 Linux 内核入门
  • 0101DNS TCP fallback on UDP query timeout disabled-redission-中间件
  • 位运算
  • MemFire Cloud是否真的可以取代后端
  • 数据结构(邓俊辉)学习笔记】优先级队列 06——完全二叉堆:批量建堆
  • Java | Leetcode Java题解之第344题反转字符串
  • 定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新
  • Spring MVC Controller返回json日期格式配置失效的解决办法
  • 3.Default Constructor的构造操作
  • CSS的:current伪类:精准定位当前活动元素
  • 搭建个人网站
  • 机器学习课程学习周报八
  • 福泰轴承股份有限公司进销存系统pf
  • 【k8s从节点报错】error: You must be logged in to the server (Unauthorized)
  • 风清扬/基于Java语言的光伏监控系统+光伏发电预测+光伏项目+光伏运维+光伏储能项目
  • Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向全过程笔记
  • 数组---怎么样定义和引用数组
  • Nginx—Rewrite
  • 《深入浅出WPF》读书笔记.5控件与布局(上)
  • 二叉树的判断
  • Hive3:常用的内置函数
  • 设计模式---构建者模式(Builder Pattern)
  • Pytorch中transform的应用
  • okular阅读软件简介
  • 【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系
  • 掌握抽象工厂模式:打造灵活且强大的跨平台产品族
  • 【Hadoop】建立圈内组件的宏观认识(大纲版)
  • NFS主从同步Rsync、sersync2