exit被用来结束一个脚本,就像在C语言中一样。它也返回一个值,并且这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理。
每个命令都会返回一个退出状态码。成功的命令返回0,不成功的命令返回非零值,非零值通常都会被解释成一个错误码。
同样的,脚本中的函数和脚本本身也会返回退出状态码。在脚本或者是脚本函数中执行的最后的命令会决定退出状态码。在脚本中,exit nnn命令会把nnn退出码传递给shell(nnn必须是十进制数,范围必须是0-255)。
当脚本以不带参数的exit命令来结束时,脚本的退出状态码就由脚本中最后执行的命令来决定。不带参数的exit命令与exit $?的效果是一样的。
$?保存了最后所执行的命令的退出状态码。$?用于测试脚本中的命令结果的时候,往往显得特别有用。
!逻辑“非”操作符,将会反转命令或条件测试的结果,并且这会影响退出状态码。注意!和命令之间需要一个空格。
特定的退出状态码具有保留含义,所以用户不应该在脚本中指定它。