作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在:
#!/bin/sh
for var1 in 1 2 3
do
for var2 in 0 5
do
if [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fi
done
done
输出是:
1 0
1 5
然后脚本停止。
如果删除 break 命令的参数 (2),输出是:
1 0
1 5
3 0
3 5
我想问的是,为什么要打印 3 0
和 3 5
,当脚本不中断时?脚本没有打印 2 0
和 2 5
,3 0
和 3 5
应该发出中断信号嗯……
最佳答案
break
的可选参数告诉它要跳出哪个循环。如果省略参数,它会跳出最内层的循环。使用参数 n
它会跳出 n
封闭循环。
所以 break 2
跳出 for var1
循环,因为它是第二个封闭循环。如果将其更改为 break
,它会跳出 for var2
循环,因此它会转到 for var1
的下一次迭代。
关于linux - 我不明白 break 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40516872/
我是一名优秀的程序员,十分优秀!