这次说下流程控制里的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循环,那么这里只是需要看下语法怎么使用即可。
下图为公众号二维码,内容会同步发出,大家可以关注一起学习!