shell指令碼之多重迴圈與跳出
阿新 • • 發佈:2022-04-12
目錄
1、雙重迴圈
1.1 格式
#!/bin/bash
for ((i=9;i>=1;i--))
do
for ((j=9;j>=$i;j--))
do
echo -n -e "$j×$i=$[$i*$j]\t"
done
echo
done
1.2 例項操作
2.1 格式
#!/bin/bash for ((a=1;a<=9;a++)) do for ((b=9;b>=a;b--)) do echo -n " " done for((c=1;c<=a;c++)) do echo -n "*" done for ((d=2;d<=a;d++)) do echo -n "*" done echo " " done for ((a=8;a>=1;a--)) do for ((b=9;b>=a;b--)) do echo -n " " done i=$[(2*$a)-1] for ((h=1;h<=$i;h++)) do echo -n "*" done echo " " done ~
2.2 例項操作
二、迴圈語句中的break
1、break的使用
當滿足條件的情況下break會跳出當前迴圈體
2、當直接break時
表示跳出該層迴圈
2.1 格式
#/bin/bash #Multiple loop for ((i=1;i<=2;i++)) do echo "外迴圈為:$i" for ((j=1;j<=2;j++)) do echo "--內迴圈為:$j" for ((k=1;k<=2;k++)) do echo "----內2迴圈為:$k" if [ $k -eq 1 ];then break fi for ((l=1;l<=2;l++)) do echo "------內3迴圈為:$l" done done done done
2.2 例項操作
三、迴圈語句中的continue
continue中止某次迴圈中的命令,但不會完全中止整個命令
注意:while 多重迴圈中使用continue要慎重,位置如果放的不對,則會導致死迴圈
1、格式
#!/bin/bash
#!/bin/bash
sum=0
while read n; do
if((n<1 || n>100)); then
continue
fi
((sum+=n))
done
echo "sum=$sum"