我理解EXIT命令会导致shell或程序终止。 但是下面的区别是什么:
exit 2
exit 3
exit 4
exit $?
退出2如何与退出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
相同的代码退出