for循环
for循环的基本语法:
1 | for i in item1 item2 ... itemN |
在for循环中,每次指定列表中的新值被赋予变量i后,for循环都会执行一次,它将重复运行do和done之间的所有语句,直到条件不满足时为止。
实例:
1 | 要求: |
for循环练习1:批量创建10个用户,设置并显示用户随机密码
1 | vim useradd.sh |
1 | 扩展:批量删除用户 |
for循环练习2:打印操作系统名称
1 | #!/bin/bash |
for循环案例3:如果文件存在,则打印此文件,否则打印一个错误信息。
1 | vim file_check.conf |
for 循环案例4:使用命令替换的for循环实例
1 | [root@oldboy202 ~]# vim change.sh |
案例5:for语句倒计时脚本-生成序列
1 | 预备知识: |
while循环
while循环用于重复的执行一个命令列表。语法如下:
1 | while [ 条件 ] |
实例:
1 | #!/bin/bash |
案例1:【釜底抽薪法-逐行读取文件】将read命令和while循环来读取一个文本文件
1 | #!/bin/bash |
案例2:还可以按列读取文件的内容,将文件分为3列输出
1 | #!/bin/bash |
定义无限while循环(又称死循环)
一般当条件永远不被满足时,就会发生一个无限循环。
定义一个无限循环可以使用如下3种命令:
true命令(也可以使用“:”) – 一直表示成功,给定语句将被执行。
false命令 – 不会执行任何语句,脚本/程序将跳转到done语句后的下一行。
实例1:使用“:” 定义一个无限循环
1 | #!/bin/bash |
实例2:使用“true” 定义一个无限循环
1 | #!/bin/bash |
实例3:使用while循环显示数字0-9
1 | #!/bin/bash |
expr手工命令计数器
1 | expr命令一般用于整数值,但也可用于字符串。 |
实例4:编写菜单驱动程序
1 | #!/bin/bash |
until循环
until循环与while循环类似,也同样基于一个条件。但util循环的判断条件正好与while循环的判断条件相反。
until循环在条件为假的情况下才会继续运行; 一旦条件被满足,即为真,就会退出循环。
1 | until [ CONDITION ] |
until循环与while循环相比:
- until循环执行直到返回0的状态就退出,因为0表示为真。
- while循环执行知道返回非0状态就退出,因为非0表示为假。
- until循环总是执行至少一次。
实例:
1 | #!/bin/bash |
select循环语句
bash还提供select循环,其语法如下所示:
1 | select VAR in LIST |
select循环语句具有如下特点:
- select语句使用Bash内部变量PS3的值作为它的提示信息。
- 打印到屏幕上的列表LIST中的每一项会在前面加上一个数字编号
- 当用户输入数字与某一个数字编号一致时,列表中相应的项即被赋予给变量VAR。
- 如果用户的内容为空,将重新显示列表LIST中的项和提示符信息。
- 可以通过添加一个退出选项,或按Ctrl+C或 Ctrl+D组合键退出select循环。
实例:
1 | #!/bin/bash |
执行结果
1 | [root@CactiEZ ~]# sh select.sh |
循环控制
break和continue是Bash中的循环控制命令,其用法与在其他编程语言中的同名语句完全一致。
break语句
作用:break语句用于从for、while、until或select循环中退出,停止循环。
break语句的语法如下:
1 | break [n] |
实例:
1 | #!/bin/sh |
执行结果:
1 | [root@CactiEZ ~]# sh break1.sh /etc/passwd |
实例2:使用break n语句退出嵌套循环
1 | #!/bin/bash |
测试
1 | [root@openvpn2]# cd /bin |
总结
什么叫shell循环?
1 | shell 可以重复的执行特定指令,直到特定的条件被满足为止。这重复执行的一组命令就叫做循环。 |
shell循环特点
1 | 循环条件中使用的变量必须是已初始化的,然后再循环中开始执行;在每一次循环开始时进行一次测试,重复的执行一个代码块。 |
for循环总结
1 | 在for循环中,每次指定列表中的新值被赋给变量VAR后,for循环都会执行一次,它将重复运行do和done之间的所有语句,直到条件不满足时为止。 |
while循环总结
1 | 1) while循环语句用于重复的执行一个命令列表 |
until循环总结
1 | until循环与while循环类似,也同样基于一个条件。但until循环的判断条件正好与while循环的判断条件相反,until循环在条件为假的情况下才会持续的运行。一旦条件被满足,即为真,就会退出循环。 |
select循环总结
1 | 1) select语句使用Bash内置变量PS3的值作为它的提示符信息 |
break控制命令总结
1 | break是Bash中的循环控制命令,break语句用于从for、while、until或select循环中退出,停止循环的执行。使用break n将退出n级嵌套循环。 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/07/24/Shell编程之Bash循环/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!