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给我们提供了内置方法来实现该功能: exitbreak. 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 忽略本次循环剩余的所有代码,直接进行下一次循环,直到循环结束,然后继续循环之后的代码。
posted @   老王教你学Linux  阅读(724)  评论(0编辑  收藏  举报
编辑推荐:
· .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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示