5

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

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

“”在这里的目的是什么exit $?

4

1 回答 1

5

它使脚本将最后一个有效命令的返回码返回给调用 init 系统。每当一个命令退出时,它的返回码都会$?被 shell 存储起来。

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

退出:退出 [n]

退出外壳。

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

我也希望你不是真的意思eend $?OpenRC

eend retval [字符串]

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

于 2014-08-18T10:54:09.380 回答