自动化运维[shell编程]——————退出脚本exit、退出循环break、跳过本次循环continue

文章目录

  • 1.exit
  • 2. break
  • 3.continue

1.exit

exit命令是Shell内建命令,用于退出当前Shell进程。使用格式如下:

exit [<n>]

可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退出

如果状态码是0-255之外的数值,则会被强制转换为uint8_t类型的数值

  • 比如-1会被转换为255,256会发生类型宽度截断,被转换为0。

状态码n可以不指定默认是上一条命令的退出状态码

现在我们编写一个脚本查看他是否直接退出脚本:

#!/bin/bash
for i in {
     1..10}
do
	if [ "$i" = "5" ]
	then
		echo lucky number
		exit 0
	fi
	echo $i
done

自动化运维[shell编程]——————退出脚本exit、退出循环break、跳过本次循环continue_第1张图片
总结:exit是用来直接退出脚本结束进程的

2. break

break语句用于终止整个循环的执行,完成后所有行代码break语句的执行。然后,它逐级的代码跟在循环结束。

他的使用方法:

break # 用于以下break语句退出循环
break n # 这里n指定的第n个封闭的循环退出

我们使用以下例子进行测试break:

#!/bin/sh
a=0 # 定义一个变量a
while [ $a -lt 10 ] # 当a小于10的时候
do
   echo $a # 输出当前a的值
   if [ $a -eq 5 ] # 如果a=5
   then
      break # 退出循环
   fi
   a=`expr $a + 1` # a的值加1
done
echo "END" # 最后输出end,测试跳出的是循环不是脚本

自动化运维[shell编程]——————退出脚本exit、退出循环break、跳过本次循环continue_第2张图片
之前说break n表示退出n重循环,我们使用以下实验测试:

#!/bin/sh
for var1 in 1 2 3 # 变量var1循环三次,取三个值1、2、3
do
   for var2 in 0 5 # 变量var2循环二次,取二个值0、5
   do
      if [ $var1 -eq 2 -a $var2 -eq 0 ] # 当var1等于2且var2等于0的时候
      then
         break 1 # 退出一重循环for var2
      else
         echo "$var1 $var2" # 即不输出2 0,而是直接进入下次循环输出3、0
      fi
   done
done

自动化运维[shell编程]——————退出脚本exit、退出循环break、跳过本次循环continue_第3张图片
这就是break的两种用法。

3.continue

continue语句break命令类似,但它会导致当前迭代的循环退出,而不是整个循环

continue # 跳过这一次的循环
continue n # 第n个封闭循环跳过这次循环

我们使用以下实验进行测试:

#!/bin/bash
NUMS="1 2 3 4 5 6 7" # 定义变量
for NUM in $NUMS # 循环取定变脸值
do
   Q=`expr $NUM % 2` # Q等于NUM的值除2取余
   if [ $Q -eq 0 ] # 当Q等于0
   then
      echo "Number is an even number!!" # 这个数是一个偶数
      continue # 跳过本次循环
   fi
   echo "Found odd number" # 否则就是个奇数
done

自动化运维[shell编程]——————退出脚本exit、退出循环break、跳过本次循环continue_第4张图片
这就是continue的用法。

你可能感兴趣的:(shell,linux,shell,运维)