自动化运维[shell编程]——————for循环语句、while循环语句、until循环语句

1.for循环语句

for循环的运作方式

  • 是将串行的元素意义取出,依序放入指定的变量
  • 然后重复执行含括的命令区域(在do和done 之间)
  • 直到所有元素取尽为止

串行是一些字符串的组合,彼此分隔符(如空格符)隔开,这些字符串称为字段。

for 变量 in 串行
do
   	执行命令
done

1.1 通过数字的方式

实例1:循环输出所跟数字。

for i in 1 4 5
do
	echo "$i"
done

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

实例2:

for i in {1..10}
do
	echo "$i"
done

在这里插入图片描述
在这里插入图片描述
实例3:倒数输出

for i in {10..1}
do
	echo "$i"
done

在这里插入图片描述

在这里插入图片描述

1.2 通过seq命令

seq 用于生成从一个数到另一个数之间的所有整数

用法:

seq [选项] .. 尾数
seq [选项] .. 首数 尾数
seq [选项] .. 首数 增量 尾数

选项:
-f:指定输出格式
-w:指定输出数字同宽,与-f部分作用相似,不可与-f选项同时使用
-s:指定分隔符,默认分隔符是/n(回车)

首先测试-f选项:

在这里插入图片描述
测试-w选项:

在这里插入图片描述

测试-s选项:

在这里插入图片描述
现在可以将seq使用在for循环中:

从一数到十

在这里插入图片描述

在这里插入图片描述
输出从1-10中的单数

在这里插入图片描述
在这里插入图片描述

输出从1-10中的双数

在这里插入图片描述

在这里插入图片描述

注意seq不能倒数:

在这里插入图片描述
在这里插入图片描述

1.3 for循环中的数值运算

我们可以在for循环中像c语言中一样进行计算循环:

for ((i=1;i<10;i++)) # 循环i-1次
do
	循环内容
done

在这里插入图片描述

在这里插入图片描述

1.4 字符形式的循环

可以将字符按照顺序执行:

for i in {a..e}
do
	执行内容
done

在这里插入图片描述

在这里插入图片描述

2.while循环语句

while循环的语法:

while 条件测试
do
	执行命令
done

测试条件只要为真(True)就会一直循环执行命令:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们更改脚本当用户输入exit的时候就停止循环退出:

这里可以在条件处使用test语句判断输入:

[ ! "$WORD" = "exit" ] # 当变量WORD的值不等于exit时为真,继续循环

在这里插入图片描述

在这里插入图片描述
或者是像for一样的数值循环,但是这种方式不如直接使用for:

计算从1加到10的值

#!/bin/bash
declare -i i=1 # 声明i和sum为整数型
declare -i sum=0 # 
while ((i<=10)) # 只要i值小于或者等于10,就执行循环
do
  let sum+=i # sum+=i和sum=sum+i是一样的,sum累加上i
  let i++ # i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环
done
echo $sum # 显示sum的值为55

用while写一个九九乘法表

#!/bin/bash
declare -i a=1 # 声明函数a、b、i为整数
declare -i b=1
declare -i i=0
while (( $a <= 9 )) # 设定被乘数最高为9
do
        while (($b <= $a)) # 设定乘数小于被称数
        do
                i=$a*$b # 计算结果值
                echo -en "$b * $a = $i   " # 输出乘法
                b=$b+1 # 乘数加1
        done
        echo -e "\n" # 换行
        a=$a+1 # 被乘数加一
        b=1 # 乘数重制为1
done

3.until循环语句

while循环的条件测试是测真值,until循环则是测假值:

until 条件测试
do
	执行命令
done

当测试条件为假(false)时一直循环,当为真(true)时退出循环

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

当条件成立停止循环

在这里插入图片描述
在这里插入图片描述

while 条件 条件成立继续循环
until 条件 条件成立停止循环

接下来使用until完成一个九九乘法表

#!/bin/bash
declare -i a=1 # 声明函数a、b、i为整数
declare -i b=1
declare -i i=0
until (( $a > 9 )) # 设定被乘数大于9时退出
do
        until (($b > $a)) # 设定乘数大于被乘数时退出
        do
                i=$a*$b # 计算结果值
                echo -en "$b * $a = $i   " # 输出乘法
                b=$b+1 # 乘数加一
        done
        echo -e "\n" # 换行
        a=$a+1 # 被乘数加1
        b=1 # 乘数重置为1
done

版权声明:本文为mango_kid原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。