在UNIX中解释不同的EXIT命令

时间:2014-02-18 16:42:14

标签: linux bash unix

我理解EXIT命令会导致shell或程序终止。 但是下面的区别是什么:

exit 2
exit 3
exit 4
exit $?

退出2如何与退出3不同,依此类推

3 个答案:

答案 0 :(得分:3)

这只是一个退出代码。 0表示精细退出,否则为错误代码。 $?是一个shell变量,存储前一个退出值(所以程序在你的那个之前运行)。

答案 1 :(得分:2)

exit命令采用单个值,该值是进程(例如shell)返回代码的值。 $?是shell执行的最后一个命令的返回码。

例如,退出的脚本带有与第一个参数对应的返回码:

#!/bin/sh
exit $1

会给你:

# ./script 1
# echo $?
1
# ./script 2
# echo $?
2

注意在大多数UNIX系统上,返回代码限制为0到255之间的数值,0表示成功,1-255表示错误信息(特定于每个进程)。

答案 2 :(得分:1)

高级Bash-Scripting Guide,第6章:退出和退出状态

  

exit命令终止脚本,就像在C程序中一样。它还可以返回一个值,该值可供脚本的父进程使用。

因此,exit命令允许您指定自己的退出值,例如,您可以在其手册页中描述。

$?将返回上一个命令的退出代码。例如;您编写了一个执行cat example.txt的脚本,从而导致退出代码1.如果您执行exit $?,您的脚本将使用与cat example.txt相同的代码退出