- Unix/Linux 初学者教程
- Unix/Linux - 首页
- Unix/Linux - 什么是 Linux?
- Unix/Linux - 快速入门
- Unix/Linux - 文件管理
- Unix/Linux - 目录
- Unix/Linux - 文件权限
- Unix/Linux - 环境变量
- Unix/Linux - 基本实用程序
- Unix/Linux - 管道 & 过滤器
- Unix/Linux - 进程
- Unix/Linux - 通信
- Unix/Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix/Linux - Shell 脚本
- Unix/Linux - 什么是 Shell?
- Unix/Linux - 使用变量
- Unix/Linux - 特殊变量
- Unix/Linux - 使用数组
- Unix/Linux - 基本运算符
- Unix/Linux - 决策语句
- Unix/Linux - Shell 循环
- Unix/Linux - 循环控制
- Unix/Linux - Shell 替换
- Unix/Linux - 引号机制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函数
- Unix/Linux - 手册页帮助
- 高级 Unix/Linux
- Unix/Linux - 标准 I/O 流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux - 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Unix/Linux - Shell 循环类型
本章将讨论 Unix 中的 Shell 循环。循环是一种强大的编程工具,使您可以重复执行一组命令。本章将介绍 Shell 程序员可用的以下几种循环类型:
根据实际情况选择不同的循环。例如,**while** 循环在给定条件为真时重复执行给定的命令;**until** 循环在给定条件变为真时才停止执行。
一旦您具备良好的编程实践,您将获得专业知识,从而开始根据情况使用合适的循环。这里,**while** 和 **for** 循环在大多数其他编程语言(如 **C**、**C++** 和 **PERL** 等)中都可用。
循环嵌套
所有循环都支持嵌套的概念,这意味着您可以将一个循环放在另一个相似或不同的循环内。根据您的需求,这种嵌套可以无限次进行。
这是一个 **while** 循环嵌套的示例。其他循环也可以根据编程需求以类似的方式嵌套:
嵌套 while 循环
可以在另一个 while 循环的主体中使用 while 循环。
语法
while command1 ; # this is loop1, the outer loop do Statement(s) to be executed if command1 is true while command2 ; # this is loop2, the inner loop do Statement(s) to be executed if command2 is true done Statement(s) to be executed if command1 is true done
示例
这是一个简单的循环嵌套示例。让我们在您用来计数到九的循环中添加另一个倒计时循环:
#!/bin/sh a=0 while [ "$a" -lt 10 ] # this is loop1 do b="$a" while [ "$b" -ge 0 ] # this is loop2 do echo -n "$b " b=`expr $b - 1` done echo a=`expr $a + 1` done
这将产生以下结果。需要注意的是 **echo -n** 在这里的用法。这里的 **-n** 选项使 echo 避免打印换行符。
0 1 0 2 1 0 3 2 1 0 4 3 2 1 0 5 4 3 2 1 0 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
广告