一、while循环介绍

while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while

二、while语法

while [ condition ]  #条件为真才会循环,条件为假,while停止循环
do
commands
done

三、while实战

1、使用while遍历文件内容

#!/usr/bin/bash

while read i
do
echo "$i"
done < $1

查看运行结果:

[root@localhost test20210728]# sh while-1.sh /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
......

2、while实现账户登录判断

[root@localhost test20210728]# vim while-2.sh

#!/usr/bin/bash

read -p "login: " account
while [ $account != 'root' ]
do
echo "输入的账户不符合条件,请重新输入:"
read -p "login: " account
done

查看运行结果:

[root@localhost test20210728]# sh while-2.sh
login: test
输入的账户不符合条件,请重新输入:
login: root1
输入的账户不符合条件,请重新输入:
login: root
[root@localhost test20210728]#

3、while+sleep(输出1-10,且每次输出后睡眠1s)

[root@localhost test20210728]# vim while-3+sleep.sh

#!/usr/bin/bash
i=1
while [ $i -lt 10 ];do
echo -n $i" "
sleep 1
i=$((i+1))
done
echo

查询运行结果:(每秒输出一个数字)

[root@localhost test20210728]# sh while-3+sleep.sh
1 2 3 4 5 6 7 8 9

4、while+break(输出1开始自增,且到5时停止)

[root@localhost test20210728]# vim while-4+break.sh 

#!/usr/bin/bash
i=1
while [ $i -lt 10 ];do
echo -n $i" "
if [ $i -eq 5 ];then
break
fi
i=$((i+1))
done
echo

查看运行结果:

[root@localhost test20210728]# sh while-4+break.sh
1 2 3 4 5

5、while+continue(输出1-10开始自增,且到5时跳过输出)

[root@localhost test20210728]# vim while-5+continue.sh 

#!/usr/bin/bash
i=0
while [ $i -lt 10 ];do
i=$((i+1))
if [ $i -eq 5 ];then
continue
fi
echo -n $i" "
done
echo

查看运行结果:

[root@localhost test20210728]# sh while-5+continue.sh
1 2 3 4 6 7 8 9 10

最新文章

  1. samsung Galaxy s2(GT i9100g )刷机升级至4.4小记
  2. delphi 十进制十六进制转换
  3. jquery中的clone()方法使用
  4. Mysql 导入 MSSQL
  5. Yii javascript 的结合 账号禁用 激活 的设置。
  6. tc srm 636 div2 500
  7. python学习之random模块
  8. 第二百三十八天 how can I 坚持
  9. Java 多线程 简单实例 (消费者与生成者)的关系
  10. CKRule BRMS-决策表使用说明
  11. 【HDOJ】1222 Wolf and Rabbit
  12. 全 Javascript 的 Web 开发架构:MEAN
  13. Java 数据类型在实际开发中应用二枚举
  14. Spring整合JMS(一)-基础篇
  15. 【爆料】-《布莱顿大学毕业证书》Brighton一模一样原件
  16. aps .net MVC单用户登录
  17. pytest 9 pytest-datadir读取文件信息
  18. 非阻塞模式(ioctlsocket)
  19. 物联网智能家居ppt
  20. 【BZOJ4868】[六省联考2017]期末考试(贪心)

热门文章

  1. Appium UI自动化测试
  2. Task03:复杂一点的查询
  3. NOIP模拟测试25「字符串&#183;乌鸦喝水&#183;所陀门王的宝藏(陀螺王)」
  4. NOIP模拟测试10「大佬&#183;辣鸡&#183;模板」
  5. Bean初始化操作initMethod、@PostConstruct和InitializingBean
  6. 图解 Redis | 不多说了,这就是 RDB 快照
  7. C++中指针与引用详解
  8. WEB安全新玩法 [6] 防范图形验证码重复使用
  9. excel打印出现多余空白页
  10. Vsftpd配置(Centos7)