Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 为什么许多init.d脚本以“结束”;退出$?“;?_Linux_Bash_Init.d_Centos6.5 - Fatal编程技术网

Linux 为什么许多init.d脚本以“结束”;退出$?“;?

Linux 为什么许多init.d脚本以“结束”;退出$?“;?,linux,bash,init.d,centos6.5,Linux,Bash,Init.d,Centos6.5,我在CentOS 6.5的init.d脚本中看到了很多奇怪的怪癖,但我在大多数脚本的结尾看到的一种模式是 case "$1" in # ... commands here esac exit $? 此处“exit$?”的目的是什么?它使脚本将最后一个重要命令的返回代码返回给调用init系统。每当命令退出时,它的返回代码由shell存储在$?上 实际上,没有必要显式地指定$?,但脚本编写者可能只是为了清楚地知道它打算做什么 退出:退出[n] 退出shell 退出外壳程序,状态为N。如果省

我在CentOS 6.5的init.d脚本中看到了很多奇怪的怪癖,但我在大多数脚本的结尾看到的一种模式是

case "$1" in
    # ... commands here
esac
exit $?

此处“
exit$?
”的目的是什么?

它使脚本将最后一个重要命令的返回代码返回给调用init系统。每当命令退出时,它的返回代码由shell存储在
$?

实际上,没有必要显式地指定
$?
,但脚本编写者可能只是为了清楚地知道它打算做什么

退出:退出[n]

退出shell

退出外壳程序,状态为N。如果省略N,则退出状态为 是最后执行的命令的名称

我也希望你不是指OpenRC的
eend$?

eend retval[string]

如果retval不等于0,则使用eerror和!!在该行末尾的方括号中。否则,在该行末尾的方括号中输出ok。返回retval的值


请参阅。

那么这是为了代码清晰?(一段说“不要因为我依赖退出代码而覆盖退出代码”?)这可能是一回事。如果它在脚本的末尾,
exit
也可以省略,因为shell默认会返回
$?
的任何值。