Shell 的 for 循环 也可以实现嵌套的效果,即 for 循环里面嵌套一个或多个 for 循环。这种写法就类似于 Shell 中的 while 循环 的嵌套。
for ((express11; express12; express13))
do
# statements1
for ((express21; express22; express23))
do
# statements2
for ((express31; express32; express33))
do
# statements3
done
done
done
我们定义了三个循环的嵌套。
使用循环嵌套,打印计数器
#!/bin/bash
i=0
for((i=0; i<2; i++))
do
echo "i="$i
j=0
for((j=0; j<4; j++))
do
echo " j="$j
done
done
echo "Over"
程序运行后,控制台输出如下:
首先,我们定义了一个最外层的 for 循环嵌套,计数器 变量 i 从 0 开始,结束条件是 i < 2,每次执行一次循环将 i 的值加 1,并打印当前 i 的值。
在最外层循环的里面,同时又定义了一个内部循环,计数器变量 j 从 0 开始,结束条件是 i < 4,每次执行一次循环将 j 的值加 1,并打印当前 j 的值。
使用循环嵌套,打印数列
#!/bin/bash
i=0
for((i=0; i<4; i++))
do
echo "i="$i
j=0
for((j=0; j<=i; j++))
do
echo " j="$j
done
done
echo "Over"
程序运行后,控制台输出如下:
首先,我们定义了一个最外层的 for 循环嵌套,计数器变量 i 从 1 开始,结束条件是 i < 4,每次执行一次循环将 i 的值加 1,并打印当前 i 的值。
在最外层循环的里面,同时又定义了一个内部循环,计数器变量 j 从 0 开始,结束条件是 j <= i,每次执行一次循环将 j 的值加 1,并打印当前 j 的值。
Shell 的 for 循环也可以实现嵌套的效果,即 for 循环里面嵌套一个或多个 for 循环。这种写法就类似于 Shell 中的 while 循环的嵌套。