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

Sco*_*der 5 linux bash init.d centos6.5

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

case "$1" in
    # ... commands here
esac
exit $?
Run Code Online (Sandbox Code Playgroud)

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

kon*_*box 5

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

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

退出:退出[n]

退出shell.

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

我也希望你的意思eend $?OpenRC:

eend retval [string]

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

.