Shell中exit和return的区别讲解
命令
exit命令是Shell内建命令,⽤于退出当前Shell进程。使⽤格式如下:
exit[
可以指定退出状态n,n的取值范围是0-255,⼀般情况下,0表⽰正常退出,⾮零表⽰异常退出。如果状态码是0-255之外的数
值,则会被强制转换为uint8_t类型的数值,⽐如-1会被转换为255,256会发⽣类型宽度截断,被转换为0。状态码n可以不指
定,默认是上⼀条命令的退出状态码。
关于状态码值的定义尚未有统⼀的标准我要安全 ,但是结束程序时随意的指定⼀个状态码是⼀个不好的⾏为,应该使⽤统⼀的状态码。
这样便于调⽤者更具状态码快带静字的网名 速粗略地推断出被调的状态,⽽不⽤去查找状态码的具体含义。当然实际的状态码值可以⾃定
义,项⽬中统⼀即可,但还是推荐使⽤GNUC的头⽂件
#def练车技巧 ineEX_OK0/*successfultermination*/
#defineEX__BASE64/*bavalueforerrormessages*/
#defineEX_USAGE64/*commandlineusageerror*/
#defineEX_DATAERR65/*dataformaterror*/
#defineEX_NOINPUT66/*cannotop女子柔道 eninput*/
#defineEX_NOUSER67/*addreunknown*/
#defineEX_NOHOST68/*hostnameunknown*/
#defineEX_UNAVAILABLE69/*rviceunavailable*/
#defineEX_SOFTWARE70/*internalsoftwareerror*/
#defineEX_OSERR71/*,can'tfork)*/
#def开方公式 ineEX_OSFILE72/*criticalOSfilemissing*/
#defineEX_CANTCREAT73/*can'tcreate(ur)outputfile*/
#defineEX_IOERR74/*input/outputerror*/
#defineEX_TEMPFAIL75/*tempfailure;urisinvitedtoretry*/
#defineEX_PROTOCOL76/*remoteerrorinprotocol*/
#defineEX_NOPERM77/*permissiondenied*/
#defineEX_CONFIG7扩充内存 8/*configurationerror*/
#defineEX__MAX78/*maximumlistedvalue*/
关键字
return是语⾔级别的⼀个关键字,⽤于结束函数并返回⼀个结果。return不带参数时,则会返回函数体中最后⼀个命令的返回
值。
return也可以⽤于使⽤.或source的⽅式包含的⼦Shell脚本中,可以返回指定的状态或者脚本中最后⼀个命令的exitstatus。
⽐如如下脚本:
#!/bin/bash
if[$#-ne1]
then
echo"pleainputparameter"
return1
fi
上⾯的脚本如果直接执⾏则会报如下错误:
return:canonly`return'fromafunctionorsourcedscript
但是如果使⽤.或souce的⽅式被包含到⽗Shell中,则可以正常运⾏。
与return的区别
(1)作⽤不同。exit⽤于在程序运⾏的过程中随时结束程序,exit的参数是返回给OS的。exit是结束⼀个进程,它将删
除进程使⽤的内存空间,同时把错误信息返回⽗进程。⽽return是返回函数值并退出函数;
(2)语义层级不同。return是语⾔级别的,它表⽰了调⽤堆栈的返回;⽽exit是系统调⽤级别的,它表⽰了⼀个进程的
结束;
(3)使⽤⽅法不⽤。return⼀般⽤在函数⽅法体内,exit可以出现在Shell脚本中的任意位置。
总结
以上就是这篇⽂章的全部内万能申请书 容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果
你四十的英语怎么读 想了解更多相关内容请查看下⾯相关链接
本文发布于:2023-03-20 02:21:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/15f07ee8f0c24737e25466153bb16234.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:return键.doc
本文 PDF 下载地址:return键.pdf
留言与评论(共有 0 条评论) |