shell编程 - 循环语句
1. for in 语句
- 基本格式
for var in list
do
commands
done
- 代码示例
list="test1 test2 test3"
for value in $list
do
echo $value
done
- 设置列表的分隔符
# 保存原始的分隔符设置
ifs=$IFS
# 设置风格符为换行符,逗号,以及冒号
IFS=$'\n',:
list="test1,test2,test3"
for value in $list
do
echo $value
done
# 恢复默认设置
IFS=$ifs
IFS默认将空格,制表符,换行符作为分隔符
- 从命令读取值
cat ./test.txt
this is test1
this is test2
this is test3
file="./test.txt"
ifs=$IFS
IFS=$'\n'
for value in $(cat $file)
do
echo $value
done
IFS=$ifs
- 使用通配符读取目录
for file in ./*
do
if [ -f "$file" ]
then
echo "$file"
fi
done
2. for 语句
- 基本格式
for (( variable assignment; condition; iteration process ))
- 代码示例
for (( i=1; i <= 5; i++ ))
do
echo "$i"
done
3. while 语句
- 基本格式
while test command
do
other commands
done
- 代码示例
var1=5
while [ $var1 -gt 0 ]
do
echo $var1
var1=$[ $var1 - 1 ]
done
4. until 语句
- 基本格式
until test commands
do
other commands
done
until 的条件测试返回非0的时候才会执行循环体中命令,与while刚好相反
- 代码示例
var1=5
until [ $var1 -eq 0 ]
do
echo $var1
var1=$[ $var1 - 1]
done
5. break 语句
list="test1 test2 test3"
for value in $list
do
if [ "$value" = 'test2' ]
then
break
fi
echo $value
done
默认跳出当前循环, breadk 2 则跳出双层循环的外层循环
6. continue 语句
list="test1 test2 test3"
for value in $list
do
if [ "$value" = 'test2' ]
then
continue
fi
echo $value
done
默认终止某次循环中的其他命令,continue 2则终止外层循环中的其他命令,但不终止循环
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战