while <条件表达式>;do
cmd1
cmd2
cmd3
donewhile <条件表达式>
do
cmd1
cmd2
cmd3
done# 死循环whiletrue;doecho'hei hei hei'donewhile [ 1 -eq 1 ];doecho'hei hei hei'donewhile :;doecho'hei hei hei'done
until <条件表达式>;do
cmd1
cmd2
done
until <条件表达式>
do
cmd1
cmd2
done
until循环执行一系列命令直到条件为true时停止
until循环与while循环在处理方式上刚好相反
一般while循环优于until,但在某些时候也只是机上数情况下,until循环更加有用
for循环
语法一
# 无法指定循环次数,变量表达式中有多少内容就循环多少次for i in 变量表达式;do
cmd1
cmd2
donefor i in 变量表达式
do
cmd1
cmd2
done
变量表达式:
可以是文件的内容(按空格循环)
可以是序列命令的内容
可以是数组中的内容
可以是以空格为分隔符的字符串
语法二
指定循环次数
for((i=1;i<=100;i++));doecho$idone
循环的控制语句
continuebreak
break跳出循环
break命令允许跳出所有循环(终止后面所有循环)
下面的例子中,脚本进入死循环直至用户输入数字等于5.
#!/bin/bashwhiletrue;doread -p "请输入一个数字" a
if [ $a -eq 5 ];thenbreakelseecho"你输入的是 $a"fidone
continue跳出循环
continue命令与break命令类似,只有一点差别,他不会跳出所有损坏,仅仅跳出当前循环
i=0
while [ $i -le 10 ];do
((i++))
if [ $i -eq 5 ];thencontinueelseecho$ifidone
while循环读取文件
# for循环读取文件#!/bin/bashfor i in `cat 1.txt`;doecho$idone# while读取文件# 方法一exec < 1.txt
whileread i;doecho$idone# 方法二#!/bin/bashcat 1.txt|whileread i;doecho$idone# 方法三#!/bin/bashwhileread i;doecho$idone < 1.txt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具