bash shell —— 循环

1、Shell for循环的语法如下所示:

1)for 变量 in 列表
  do
      command1
      command2
      ...
      commandN
   done

列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的值依序放入指定的变量中,然后重复执行命令区域(在do和done 之间),直到所有元素取尽为止。

2)for 变量
   do
       语句
   done
3)for ((变量=初始值; 条件判断; 变量变化))
   do
       语句
   done

for 循环仍然可以进行嵌套,有两条命令可以终止循环迭代:break、continue;使用break命令跳出循环,continue命令是一种提前停止循环内命令,而不完全终止循环的方法。这就允许在循环中设置shell不执行命令的条件。

for循环示例:

#!/bin/sh
for i in {1..9} #取1-9的数字
do
 for n in {1..9} #取1-9的数字
 do
 [ $i -ge $n ] && echo -n "${i}x${n}=$((i*n)) "  #如果$i大于等于$n,则输出。
 done
echo " "
done

2、while循环

while循环是Shell中常用的语法结构,其常用格式如下:

1)while 条件
   do
       语句
   done

2)while true  #死循环
   do
        语句
   done

3)while :     #死循环
   do
       语句
   done

4)while [ 1 ]   #死循环
   do
       语句
   done

5)while [ 0 ]   #死循环
   do
       语句
   done

command 为条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则不进入循环。在执行命令的区域中,应该要有改变条件测试的命令,这样,才有机会在有限步骤后结束执行while循环(除非想要执行无穷循环)。while循环通常用来不断执行一系列命令,也可以用来从输入文件中读取数据;命令通常为测试条件。

while 示例:

#!/bin/bash
while read text
do
  echo ${text}
done < /home/infile

说明:这个例子使用read在标准输入读取数据,放入变量text中,如果读到的数据非空,就进入循环。然后在循环中把该行数据显示出来。最后一样是输入重定向,将/home/infile的内容作为此脚本的标准输入。此脚本的输出结果就是infile文件的内容。

3、until 循环

until command
do   list
done    

until 是在 return value 为 false 时进入循环,否则结束。 

原文地址:https://www.cnblogs.com/christal-11/p/7808030.html