我决定尝试一下循环只是为了了解循环在 bash 中的工作原理。 但我就是那个被玩弄的人。 我所知道的是,break 调用有助于停止特定的循环
echo "For loop begins"
for (( a = 1; a < 10; a++ ))
do
echo -e "\tOuter loop ${a}"
for (( b = 1; b < 100; b++ ))
do
if [[ ${b} -gt 5 ]]
then
break 2
fi
echo -e "\t\tInner loop ${b}"
done
done
echo "For loop completed"
很幸运,break 2 调用也跳出了外循环。
我已经尝试将 for 循环更改为
for (( a = 1; a <= 10; a++ ))
,第二个到for (( b = 1; b <= 100; b++ ))
,用<=
代替<
,但我仍然得到相同的输出。
genius@GeniusDPhil-hp250g1notebookpc:~$ ./loop.sh
For loop begins
Outer loop 1
Inner loop 1
Inner loop 2
Inner loop 3
Inner loop 4
Inner loop 5
For loop completed
genius@GeniusDPhil-hp250g1notebookpc:~$
我预计外循环会运行 10 次,
break
是否也会让我退出外循环?如果是,我该如何正确使用break
?如果不是,那是什么问题?
注意: 我的程序员才3个月大。
我会做什么:
echo "For loop begins"
for (( a = 1; a <= 10; a++ ))
do
echo -e "\tOuter loop ${a}"
for (( b = 1; b < 100; b++ ))
do
if [[ ${b} -gt 5 ]]
then
break
fi
echo -e "\t\tInner loop ${b}"
done
done
echo "For loop completed"
请注意仅使用
break
,因为 break 2
也会破坏外循环。