break (循环转义或前进)

小猪老师 发表于 2020-07-19 05:33
浏览次数:
在手机上阅读

在unix操作系统上,break和continue是内置的外壳函数,它们在一段时间内从for、foreach或until循环转义或前进。

查看英文版

目录

1 break 运行系统环境

2 break 选项

3 break 语法

4 break 示例

break 运行系统环境

Unix&Linux

break 选项

n

要中断的嵌套循环数。预设值是1。

n

The number of nested loops to break. The default number is 1.

查看英文版

查看中文版

break 语法

break [n]
continue [n]
break [n]
continue [n]

查看英文版

查看中文版

break 示例

在以下shell脚本中,当变量a的值为5或更大时,break命令将从while循环中退出:

#!/bin/sh
a=0
while [ $a -lt 10 ]
do
   echo $a
   if [ $a -eq 5 ]
   then
      break
   fi
   a=$(( $a + 1 ))
done

并产生以下输出:

0
1
2
3
4
5

下一个示例使用break n形式从嵌套循环中中断。

#!/bin/sh
for var1 in 1 2 3
do
   for var2 in 0 1 2 3
   do
      if [ $var1 -eq 2 -a $var2 -eq 1 ]
      then
         break 2
      else
         echo "$var1 $var2"
      fi
   done
done

另外,在上述脚本中,外环套VAR1到1,然后将内环套VAR2为值0,1,2,和3分别。然后,最外层的循环将var1设置为2,内层的循环将var2设置为0和1的值,此时满足执行中断2的条件,中断2终止了这两个循环。它将产生以下输出:

1 0
1 1
1 2
1 3
2 0

In the following shell script, the break command exits from a while loop when the variable a has a value of 5 or greater:

#!/bin/sh
a=0
while [ $a -lt 10 ]
do
   echo $a
   if [ $a -eq 5 ]
   then
      break
   fi
   a=$(( $a + 1 ))
done

...and produces the following output:

0
1
2
3
4
5

This next example uses the form break n to break from a nested loop.

#!/bin/sh
for var1 in 1 2 3
do
   for var2 in 0 1 2 3
   do
      if [ $var1 -eq 2 -a $var2 -eq 1 ]
      then
         break 2
      else
         echo "$var1 $var2"
      fi
   done
done

In the above script, the outer loop sets var1 to 1, then the inner loop sets var2 to the values 0, 1, 2, and 3, respectively. Then the outermost loop sets var1 to 2 and the inner loop sets var2 to the values of 0 and 1 — at which point the conditions are met to execute break 2, which terminates both loops. It will produce the following output:

1 0
1 1
1 2
1 3
2 0

查看英文版

查看中文版

其他命令行

basename | bc | bdiff | bfs | bg | biff | bs |

如此好文,分享给朋友