Shell脚本之while的使用场景
1.什么是while
while在shell中也是负责循环的语句,和for- -样。
2.while循环和for循环怎样选?
因为功能-样,很多人在学习和工作中的脚本遇到循环到底该使用for还是while呢?
很多人不知道,就会出现有人一-遇循环就使用for、 有人一 遇循环就使用while。 到底选or好还是
while好:
1.知道循环次数的使用for比如一天循环24次;
2.如果不知道要循环多少次,那就用while比如猜数字游戏, 每个人猜对的次数是未知的。
3.while循环基础语法
#当条件测试成立(条件测试为真),执行循环体
while条件测试
do
循环体
done
4.循环嵌套整数比对,判断用户输入的数值是否大于0 ,如果大于0,则三秒输出一-次大于。
[root@oldxu ~]# cat while_ number.sh
#!/usr/bin/bash
read -p "请输入数字: " num
while [ $num -ge 0 ]
do
echo "大于"
sleep 3
done
5.循环嵌套文件比较,判断tmp/oldxu文件是否存在,如果不存在则3s输出一次not found。
存在自动退出。
[root@oldxu ~]# cat while_ file.sh
#!/usr/bin/bash
i=0
while [ ! -d /tmp/o1dxu ]
do
echo "not found /tmp/oldxu"
sleep 3
done
N
6循环嵌套字符比较,判断用户输入的用户名,如果不是root则一直让其输入
read -p "$ (hostname) login; acc
while [ $acc != "root" ]
do
read -p "$ (hostname) login:" acc
done
- 注意:#while读入文件,while默认按行读入,IFS 调整默认分隔符;
- for默认按空格读入文件IFS 调整默认分隔符
#while读入文件,默认按行读入,,,for默认按空格读入文件IFS 调整默认分隔符
while read file
do
echo $file
sleep 2s
done</ etc/ passwd
- 循环中的一些控制语句
在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结束条件时强制跳出循环,那
么Shel给我们提供了内置方法来实现该功能: exit、break. continue 1.exit ,退出整个程序。
当脚本碰到exit时 ,直接退出,剩余不管有多少代码都不执行。
[root@oldxu she11]# cat for_ exit.sh
#!/usr/bin/bash
for i in {1..3}
do echo "123"
exit ####break. continue
echo "456"
done
echo "Done....."
#执行后的结果
[root@She1l ~]# sh for_ exit.sh
123
# break,结束当前循环,但会执行循环之后的所有的代码。
# continue 忽略本次循环剩余的所有代码,直接进行下一次循环,直到循环结束,然后继续循环之后的代码。
技术是没有终点的,也是学不完的,最重要的是活着、不秃。 学习看书还是看视频,都不重要,重要的是学会,欢迎关注,我们的目标---不秃。
---更多运维开发交流及软件包免费获取请加V: Linuxlaowang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义