这次说下流程控制里的for循环相关的东西。for循环一般用于遍历的情况。
基本语法:
- for 变量 in 序列 #遍历序列里的所有值
- do #执行下面的代码模块
- 子代码模块 #代码的执行模块
- done #结束语句
简单看个例子,代码截图:

- #i/bin/bash
- for test in 1 2 3 4 5 #遍历列表里的所有值,并把值赋值给变量test
- do
- echo $test #输出test的值
- done
-
- #每次只输出一个,因为for循环是遍历列表里的所有值,每遍历一次就输出一个值,然后遍历第二次,当遍历第二次时,变量test的值也会发生变化
第一次循环:从列表中读取到 1 ,把1值赋值给变量 test,然后进入到子代码中,此时 test 的值为 1,打印出 1 ,然后结束本次for循环,判断列表中还有其他值,开始第二次循环
第二次循环:从列表中读取到 2 ,把2值赋值给变量 test,然后进入到子代码中,此时 test 的值变成了 2,打印出2,然后结束本次for循环,判断列表中还有其他值,开始第三次循环
第三次循环:从列表中读取到 3 ,把3值赋值给变量 test,然后进入到子代码中,此时 test的值变成了 3,打印出3,然后结束本次for循环,判断列表中还有其他值,开始第四次循环
第四次循环:从列表中读取到 4 ,把4值赋值给变量 test ,然后进入到子代码中,此时 test 的值变成了 4,打印出 4,然后结束本次for循环,判断列表中还有其他值,开始第五次循环
第五次循环:从列表中读取到 5 ,把5值赋值给变量 test ,然后进入到子代码中,此时 test 的值变成了 5,打印出 5,判断列表中没有值了,结束本次遍历
最后输出的值为: 1
2
3
4
5
脚本运行截图:

在for循环中也可以按顺序输出字符串中的字符:

- #!/bin/bash
- for test2 in Atom is Man ! #遍历每个字符串的值给到test2
- do #执行下面代码模块
- echo $test2 #打印test2的每个值
- done #结束循环
第一次循环:从列表中读取到字符串 Atom ,把Atom值赋值给变量 test2,然后进入到子代码中,此时 test2 的值为 Atom ,打印出 Atom ,然后结束本次for循环,判断列表中还有其他值,开始第二次循环
第二次循环:从列表中读取到 is ,把is值赋值给变量 test2,然后进入到子代码中,此时 test2 的值变成了 is,打印出is,然后结束本次for循环,判断列表中还有其他值,开始第三次循环
第三次循环:从列表中读取到 Man ,把Man值赋值给变量 test2,然后进入到子代码中,此时 test2的值变成了 Man,打印出Man,然后结束本次for循环,判断列表中还有其他值,开始第四次循环
第四次循环:从列表中读取到 ! ,把!值赋值给变量 test2 ,然后进入到子代码中,此时 test2 的值变成了 !,打印出 !,然后结束本次for循环,判断列表中没有值了,结束本次遍历
打印结果:

for循环的整个思路和其他代码语言是基本一样的,就是再语法的使用上有些区别,如果之前学习过其他语言的for循环,那么这里只是需要看下语法怎么使用即可。
下图为公众号二维码,内容会同步发出,大家可以关注一起学习!
