脚本:exit和return"/>
shell脚本:exit和return
一、比较
1、return
是一个关键字; exit
是一个函数。
2、return
是编程语言级别
,它表示调用堆栈的返回;exit
是系统调用级别
,它表示了一个进程的结束。
3、return
是函数的退出(返回);exit
是进程的退出。
4、return
是编程语言提供;exit
是操作系统提供(或者函数库中给出)。
5、return
用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit
用于退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和操作系统有关,一般 0 为正常退出,非0为异常退出。
6、非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。
二、特殊用法
1、exit 0
正常运行程序并退出程序
。使用echo $?
返回0,也就是说调用环境认为你的程序执行正常。
2、exit 1
非正常运行导致退出程序,也可以是其他数字,例如exit -1
。系统程序对于程序运行错误是有约定含义的,不为 0 就表示程序运行出错。调用环境根据这个返回值,判断你的程序运行是否正常。
3、return
用于返回值
。若在主函数中,则会退出函数并返回一个值。
4、使用注意
在 shell 编程中,要慎用 exit 0。首先必须弄清楚 exit 0 不是 return 0, 区别在于return 0用于函数中,表示函数执行成功并返回 0
;而exit 0 则表示当前程序执行成功并且直接退出当前执行脚本或程序
。相反,return -1 表示函数执行失败返回错误
;exit 1 (或大于 1)表示程序执行失败并退出程序
。
exit 用来返回进程结束时的状态,一般在父shell中使用变量 $?
来获取子shell 的退出状态,判断子shell是否执行成功
。
更多推荐
shell脚本:exit和return
发布评论