ebegin
我们非常喜欢 Portage 和 Gentoo 上其他工具使用的、eend
、eerror
等命令的风格eindent
。绿黄红项目符号和标准布局可以非常快速地发现错误,否则命令行输出会非常灰暗。
#!/bin/sh
source /etc/init.d/functions.sh
ebegin "Copying data"
rsync ....
eend $?
产生类似如下的输出:
* Copying data... [ OK ]
因此,我们在一些常见的 shell 脚本中使用这些命令,这对使用 Ubuntu 和其他 Linux 的人来说是一个问题。(linuces?linuxen?linucae?其他发行版)
在 Gentoo 上,这些功能由 OpenRC 提供,并通过functions.sh
文件导入(其确切位置似乎略有不同)。但是在 Ubuntu 上有没有一种简单的方法可以获取这些命令?
理论上,我们可以用 dull echo
s 替换它们,但我们宁愿不这样做?
答案1
对于 sysvinit 作业,您可能只需将这些函数从 gentoo 复制到一个包中,然后将其安装到您的机器中,然后以相同的方式进行源代码处理。但是,这无法解决 upstart 作业的问题。
有一个 plymouth<->upstart 桥,它使用 dbus 以结构化方式显示 plymouth 中 upstart 作业的启动/已启动/已停止/等等(plymouth 必须这样做,因为作业是并行启动的)。要对这些进行颜色编码,可能意味着使用 ncurses 修补 plymouth 详细信息插件,并使用 ncurses 调用来更改颜色。
答案2
我最终模仿它写了我自己的文章: