在 Ubuntu 下使用 Gentoo 的 `ebegin`、`eend` 等

在 Ubuntu 下使用 Gentoo 的 `ebegin`、`eend` 等

ebegin我们非常喜欢 Portage 和 Gentoo 上其他工具使用的、eendeerror等命令的风格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 echos 替换它们,但我们宁愿不这样做?

答案1

对于 sysvinit 作业,您可能只需将这些函数从 gentoo 复制到一个包中,然后将其安装到您的机器中,然后以相同的方式进行源代码处理。但是,这无法解决 upstart 作业的问题。

有一个 plymouth<->upstart 桥,它使用 dbus 以结构化方式显示 plymouth 中 upstart 作业的启动/已启动/已停止/等等(plymouth 必须这样做,因为作业是并行启动的)。要对这些进行颜色编码,可能意味着使用 ncurses 修补 plymouth 详细信息插件,并使用 ncurses 调用来更改颜色。

答案2

我最终模仿它写了我自己的文章:

https://github.com/marcusatbang/efunctions

相关内容