引言
- 该系列为个人经常需要将项目代码工程化,所以需要用到shell脚本,前段时间的每日一题非典活动虽然写了不少,但是因为要满足活动要求,所以很多函数等语法无法介绍完全,该文将介绍一个函数具体详细一些的用法
正文 关于shell中的循环实现(2)
for循环-下篇(本文继续介绍了方式2)
- 注: 方式2:for ((i=0;i<=10;i++))(这个更像C中的for循环,需要定义①变量起始值;②定义循环结束条件;③控制循环次数)
for ((expr1;expr2;expr3));do command;done
- 示例
for ((i=1;i<=5;i++));do echo $i;done

- 就比如最常见的计算1-100累加和,使用方法2实现就比较容易理解,因为其特点就是循环次数比较直接
#!/bin/bash
sum=0
for ((i=1;i<=100;i+=1))
do
let sum=$i+$sum
done
echo "1-100的奇数和为:$sum"
#!/bin/bash
for ((i=1;i<=100;i+=2))
do
echo $i
done
- 当然在for循环中也可以加上if条件,等等内容实现想要的功能
关于多层嵌套
- 在上篇中就已经提到,方式2在嵌套场景下书写个人认为比较简洁方便

#!/bin/bash
for((i=0;i<9;i++))
do
for((j=0;j<=i;j++))
do
sum=i*j
echo -n "$i*$j=$sum "
done
echo " "
done
for((i=0;i<3;i++))
do
for((j=0;j<=2-i;j++))
do
echo -n " "
done
for((j=0;j<=2*i;j++))
do
echo -n "*"
done
echo " "
done
for((i=0;i<2;i++))
do
for((j=0;j<=1+i;j++))
do
echo -n " "
done
for((j=0;j<=2-2*i;j++ ))
do
echo -n "*"
done
echo " "
done
- 上述方法同样也可以使用方法1实现,但是相对来说实现起来较为繁琐,方法2就相对方便一些,不过方法的好坏还是看使用的具体场景,适合的才是最好的
结尾
- 相较于方法1,方法2其实所用场景对个人来说不是很多,也可能是我使用方法2不熟练的原因,所介绍的例子和场景相对较少,待后续遇到继续补充
- 接下来就是关于其他的循环方法,for循环到此结束