/etc/init.d/functions 以及在 centos 和 debian 中的操作

/etc/init.d/functions and action in centos and debian

在centos中。

source  /etc/init.d/functions
action "work done"  /bin/true
action  "wrong"  /bin/false

显示如下。

work done   [OK]
wrong       [FAILED]

我发现debian里没有/etc/init.d/functions,那怎么用action "work done" /bin/true
把centos里的文件/etc/init.d/functions复制到usb里,把usb里的文件/etc/init.d/functions复制到我的debian里?

您或许可以复制该脚本,但该脚本使用的某些文件和二进制文件可能仅在 CentOS 中可用。如果您只需要函数 action() 的奇特输出,这里有一个最小的脚本。

success() {
  echo -en "\033[60G[\033[1;32m  OK  \033[0;39m]\r"
  return 0
}

failure() {
  local rc=$?
  echo -en "\033[60G[\033[1;31mFAILED\033[0;39m]\r"
  [ -x /bin/plymouth ] && /bin/plymouth --details
  return $rc
}

action() {
  local STRING=
  echo -n "$STRING "
  shift
  "$@" && success $"$STRING" || failure $"$STRING"
  local rc=$?
  echo
  return $rc
}

但请注意,原始 functions 脚本通过检查控制台类型和其他内容来完成更多工作。