是否有一些内置(bash/gentoo)函数可以为用户提供易于阅读的输出?

是否有一些内置(bash/gentoo)函数可以为用户提供易于阅读的输出?

我正在使用以下简单的函数向用户提供一些易于阅读的输出。现在我想知道是否有某种(gentoo-/bash-)内置函数来完成这个任务,因为这感觉就像“重新发明”轮子。提前致谢。

function log
{
        red='\033[0;31m'
        green='\033[0;32m'
        yellow='\033[1;33m'
        term='\033[0m'

        if [ "$1" == "INFO" ]; then
                echo -e "${green}[i] $2 ${term}"
        elif [ "$1" == "WARN" ]; then
                echo -e "${yellow}[w] $2 ${term}"
        elif [ "$1" == "ERROR" ]; then
                echo -e "${red}[e] $2 ${term}"
        fi
}

答案1

我不确定你想要实现什么,但如果你的函数会以某种方式与 portage 交互,那么也许你可以使用它的颜色定义。从man 5 color.map

VARIABLES
       NORMAL = "normal"
              Defines color used for some words  occuring  in  other  contexts  than  those
              below.

       BAD = "red"
              Defines color used for some words occuring in bad context.

       BRACKET = "blue"
              Defines color used for brackets.

       GOOD = "green"
              Defines color used for some words occuring in good context.

       HILITE = "teal"
              Defines color used for highlighted words.

       INFORM = "darkgreen"
              Defines color used for informational words.

       [...]

       SECURITY_WARN = "red"
              Defines color used for security warnings.

       UNMERGE_WARN = "red"
              Defines color used for unmerge warnings.

       WARN = "yellow"
          Defines color used for warnings.

答案2

没有内置功能可以对原木进行着色,但是有

  • Vim 的messages荧光笔使日志更易于阅读,并且还以红色突出显示包含某些关键字(“错误”、“失败”等)的行。
    尝试:setf messages

  • ccze- 强大的原木着色器colorize-显然有很多方法可以替代它来定制它的彩色功能。

  • colortail, 哪个“基本上是尾巴,但支持颜色。”

  • 和一堆其他工具 - 请参阅这个问题更多一些

答案3

考虑启用 Portage ELogging。

取自Gentoo Wiki:Portage 日志

里面/etc/portage/make.conf

  1. PORT_LOGDIR,即
    PORT_LOGDIR="/var/log/portage"
  2. PORTAGE_ELOG_CLASSES,即
    PORTAGE_ELOG_CLASSES="log warn error"
  3. PORTAGE_ELOG_SYSTEM,即
    PORTAGE_ELOG_SYSTEM="save"

您还可以根据需要对选项 3 进行不同的设置。

要将日志邮寄给某些收件人,您应该启用邮件模块,并设置一些附加变量。详细信息请阅读/usr/share/portage/config/make.conf.example。

相关内容