shell脚本中的循环语句(for,while,untli)

100 阅读3分钟

shell脚本中的循环语句

一、循环语句的介绍

重复执行一段代码, 都可以称之为循环。 循环体中三种专业的话术:遍历、迭代、递归 。

  1. 遍历:按规则访问非线性结构中的每一项。

  2. 迭代:按顺序访问线性结构中的每一项。

  3. 递归:在函数内调用自生,将复杂情况逐步转化成基本情况

二、循环语句的原理

7301c1cb7655b1bb50b589e6a2e24ea.jpg

  • 程序先进行语句判断。

  • 如果判断为真则执行循环语句,然后再进行语句判断,直至语句判断失败才跳出。

  • 如果判断为假,直接跳出,不继续执行。

三、循环语句的优点

  • 减少脚本的长度;

  • 提高工作效率。

四、循环语句:for

for是用于已知循环次数的脚本命令

循环语句for的格式:for (变量) in (次数);do (循环的事件);done(结束)

当使用c语言格式表示的时候:for (( 表达式1; 表达式2; 表达式3 )); do 命令; done。

1.循环语句for的用法

b1c60c324d0a23a7d24e0a66cd39c24.jpg

  • 读取不同的变量值,用来逐个执行同一组命令。
  • 使用场景:一般用于循环次数事先已知的场景。
  • 执行机制:遍历。

循环语句for的格式

for  i  in  循环次数
#i是变量,标准格式是i

do #开始循环

command #循环动作

done #结束循环

示例

1)打印1到10的三种方法。

image.png

image.png

image.png

2)求1-100的和。

image.png

image.png

3)求1-100的奇数和。

image.png

image.png

4)求1-100的偶数和。

image.png

image.png

2.类似于c语言风格的for循环

2c9ef57c27e42a632860c27b8cf51a0.jpg

类似于c语言风格的for循环格式

for ((exp1;exp2;exp3))

do #开始循环

command #循环动作

done #结束循环
  • exp1为初始值表达式,定义变量并赋初值;

  • exp2为判断条件表达式,决定是否循环;

  • exp3用于决定循环变量如何改变,决定循环什么时候退出。

示例

1)求1到100的和。

image.png

image.png

3.批量创建指定用户,并添加用户密码

image.png

image.png

image.png

4.查看某网段下所有主机的状态并导入指定文件中

image.png

image.png

五、循环语句:while

91ff15273169cb08aab282af30a4127.jpg

while语句用于重复测试某个条件,只要条件成立则反复执行,当命令判断为假时停止执行。

只知道停止条件,不知道次数时,就需要使用while。

循环语句while的格式

while 判断条件

do

command
    
done

1.死循环

image.png

image.png

示例

1)求1到100的和。

image.png

image.png

六、退出循环

1.exit

当执行 exit 语句后,脚本将立即终止,并且不会再执行后续的代码。

#!/bin/bash
  
while true
  
do
# 条件判断
if [ 条件 ] 
  
then

exit  # 退出脚本 

fi 
# 循环体代码
done

2. break

break语句会立即终止最内层的循环,并跳出该循环体执行循环后的代码。

  • break n 代表跳出n层循环

  • n为具体数字

    #!/bin/bash
    
    while true 
    
    do
    # 条件判断 
    if [ 条件 ]
    
    then
    break # 退出循环 
     
    fi
    # 循环体代码
    done
    

七、循环语句:until

f38ad36dada3e0f4acf1d8120e6b63e.jpg

until语句用于重复测试某个条件,和while语句相反,只要条件不成立则反复执行,条件成立时,退出循环。

循环语句until的格式

 #!/bin/bash

until 条件测试 

do 
command 

done

示例

1)求100以内的和。

image.png

image.png