想请教一下您的意见。
我正在使用while true, read和case构建具有嵌套循环的交互式bash脚本。我的问题是,第二个内环后(当选择'循环1.3'),我想继续脚本与另一个内循环,但它失败了(部分与我的评论失败)。
我想我在语法中遗漏了一些东西,但无法找到它…
下面是脚本的代码。提前谢谢。
#!/bin/bash
while true; do
read -rep $'Loop #1 (outerloop)? ntYEStNOnn' yn
case $yn in
[Yy]* )
while true; do
read -rep $'Loop #1.2 (first inner loop)? Please, choose variant 1 or 2.nt1t2nn' yn
case $yn in
[1]* )
while true; do
read -rep $'Loop #1.3 (second inner loop)?ntYEStNOnn' yn
case $yn in
[Yy]* ) read -rep $'Loop #1.3. Variant Yes.:nn' LOOP3Q1; break 3;;
[Nn]* ) break 3;;
esac
done; break 3;;
[2]* )
while true; do
read -rep $'Loop #1.3 (second inner loop).ntYEStNOnn' yn
case $yn in
[Yy]* ) read -rep $'Loop #1.3 variant Yes.nn' LOOP3Q2; break 3;;
[Nn]* ) break 3;;
esac
done; break 3;;
# Here it failes. If here I break all loops - it works, but I need to continue...
echo "Continue loop 1.2 (first inner loop)"
while true; do
read -rep $'Loop #1.3 (second inner loop).ntYEStNOnn' yn
case $yn in
[Yy]* ) read -rep $'Loop #1.3 variant Yes.nn' LOOP3Q2; break 3;;
[Nn]* ) break 3;;
esac
done; break 3;
esac
done; break 2;;
Nn]* ) break;;
esac
done
你不能用break
跳到任意的循环;该参数指定在"堆栈"中要跳出多少个循环。