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 忽略本次循环剩余的所有代码,直接进行下一次循环,直到循环结束,然后继续循环之后的代码。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM