shell编程中break、continue、exit、return的用法及区别

首先看个例子:

for ((i=1;i<5;i++ ))

do

  if [ $i -eq 3 ]

  then

  #  break

  #  continue

  #  exit

  fi

  echo $i

done

echo OK

输出的结果

break的结果

1

2

OK

continue的结果

1

2

4

OK

exit的结果

1

2

上面的脚本可以看出:

break 表示跳出整个循环,还会继续执行循环后面的内容。

continue 表示跳出本次循环,继续下一次循环。

exit彻底退出脚本, 退出shell程序,并返回n值。

return 表示退出当前函数 ,注意return命令不能直接用在脚本的主程序里,只能在shell函数中使用。

#!/bin/bash

dir=/root/shell

grep -e '^ .*cp ' -e '^cp' $dir/*  >Cp_Check.txt

if [ ! -s Cp_Check.txt ]

  then

  return 0

  fi

 直接执行脚本是会报错的

    return: can only`return' from a function or sourced script

  

exit与return的区别

  • (1)作用不同。exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的,注意在函数中调用exit 不是退出函数,而是直接退出执行的脚本文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程。而return是返回函数值并退出函数;
  • (2)语义层级不同。return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束;
  • (3)使用方法不用。return一般用在函数方法体内,exit可以出现在Shell脚本中的任意位置。
  •   (4)如果你用 脚本 a 调用 脚本b ,要在a中判断b是否正常返回,就是根据 exit 0 or 1 来识别。执行完b后, 判断 $? 就是返回值。如果shel脚本中调用的子脚本的exit,那么会退出子脚本。如果是source一个子脚本,里面的exit会导致外面的脚本也退出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值