shell 的三种循环
Shell 中有三种循环:
一、for 循环:
for 循环结构可以重复执行一个命令列表,基于 for 语句中的值列表决定是继续循环还是跳出循环。
语句格式:
复制代码
例 1:使用变量 1、2、3、4、5、6 作为值列表,for 循环中只是简单的把值列表中的值进行输出。


例 2:可以以变量作为值列表


例 3:以命令行运行结果作为值列表


二、while 循环:
while 循环会根据条件限制来执行一系列的命令,当条件为真时,执行结构中的命令,条件为假时,结束循环。
语句格式:
复制代码
例 1:使用 while 循环增量计算


例 2:循环从文件中读取内容,现有一文件,保存学生的体测成绩

现在要对以上文件中的学生成绩进行统计,计算学生的数量以及学生的平均成绩。通过 while read 语句读取变量 STUDENT 和 SCORE 的内容,然后在 while 循环中通过 expr 命令计算学生总数和学生总成绩,最后计算平均值并输出。执行该脚本时需要把 students.log 文件的内容重定向到 while2.sh 脚本中。


三、until 循环:
until 语句与 while 相反,他会循环执行一系列命令知道条件为真时停止循环
语法结构:
复制代码
例:
until 循环中读取用户输入的内容并显示到屏幕上,并且当用户 exit 时停止循环


评论