Linux 命令exit - 退出当前shell

from:

http://blog.163.com/bobile45@126/blog/static/96061992201311712658570/

用途说明

exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。

常用参数

格式:exitn

退出。设置退出码为n。(Causetheshelltoexitwithastatusofn.)

格式:exit

退出。退出码不变,即为最后一个命令的退出码。(Ifnisomitted,theexitstatusisthatofthelastcommandexecuted.)

格式:$?

上一个命令的退出码。

格式:trap"commands"EXIT

退出时执行commands指定的命令。(AtraponEXITisexecutedbeforetheshellterminates.)

退出码(exitstatus,或exitcode)的约定:

0表示成功(Zero-Success)

非0表示失败(Non-Zero-Failure)

2表示用法不当(IncorrectUsage)

127表示命令没有找到(CommandNotFound)

126表示不是可执行的(Notanexecutable)

>=128信号产生

man3exit写道

TheCstandardspecifiestwoconstants,EXIT_SUCCESSandEXIT_FAILURE,thatmaybepassedtoexit()toindicate

successfulorunsuccessfultermination,respectively.

以下摘自/usr/include/stdlib.h

C代码收藏代码

#defineEXIT_FAILURE1/*Failingexitstatus.*/

#defineEXIT_SUCCESS0/*Successfulexitstatus.*/

BSD试图对退出码标准化。

man3exit写道

BSDhasattemptedtostandardizeexitcodes;seethefile<sysexits.h>.

以下摘自/usr/include/sysexits.h

C代码收藏代码

#defineEX_OK0/*successfultermination*/

#defineEX__BASE64/*basevalueforerrormessages*/

#defineEX_USAGE64/*commandlineusageerror*/

#defineEX_DATAERR65/*dataformaterror*/

#defineEX_NOINPUT66/*cannotopeninput*/

#defineEX_NOUSER67/*addresseeunknown*/

#defineEX_NOHOST68/*hostnameunknown*/

#defineEX_UNAVAILABLE69/*serviceunavailable*/

#defineEX_SOFTWARE70/*internalsoftwareerror*/

#defineEX_OSERR71/*systemerror(e.g.,can'tfork)*/

#defineEX_OSFILE72/*criticalOSfilemissing*/

#defineEX_CANTCREAT73/*can'tcreate(user)outputfile*/

#defineEX_IOERR74/*input/outputerror*/

#defineEX_TEMPFAIL75/*tempfailure;userisinvitedtoretry*/

#defineEX_PROTOCOL76/*remoteerrorinprotocol*/

#defineEX_NOPERM77/*permissiondenied*/

#defineEX_CONFIG78/*configurationerror*/

#defineEX__MAX78/*maximumlistedvalue*/

使用示例

示例一退出当前shell

[root@new55~]#

[root@new55~]#exit

logout

示例二在脚本中,进入脚本所在目录,否则退出

Bash代码收藏代码

cd$(dirname$0)||exit1

示例三在脚本中,判断参数数量,不匹配就打印使用方式,退出

Bash代码收藏代码

if["$#"-ne"2"];then

echo"usage:$0<area><hours>"

exit2

fi

示例四在脚本中,退出时删除临时文件

Bash代码收藏代码

trap"rm-ftmpfile;echoBye."EXIT

示例五检查上一命令的退出码

Bash代码收藏代码

./mycommand.sh

EXCODE=$?

if["$EXCODE"=="0"];then

echo"O.K"

fi

相关推荐