为什么许多init.d脚本以“exit $?”结尾?

时间:2014-08-18 10:44:05

标签: linux bash init.d centos6.5

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

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

" exit $?"的目的是什么?这里吗?

1 个答案:

答案 0 :(得分:5)

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

实际上并没有必要明确指定$?,但脚本编写者可能只是将其包括在内以明确它打算做什么。

  

退出:退出[n]

     

退出shell。

     

退出状态为N的shell。如果省略N,则退出状态   是最后一个执行命令的那个。

我也希望你实际上并不是eend $?的{​​{1}}:

  

eend retval [string]

     

如果retval不等于0,则使用eerror输出字符串!!在广场上>行尾的括号。否则在行尾的方括号中输出ok。返回retval的值。

请参阅source