是否有一个 Linux 命令可以让我对另一个命令的结果进行颜色编码?

是否有一个 Linux 命令可以让我对另一个命令的结果进行颜色编码?

我正在运行一个watch命令来监控我们正在诊断的服务的打开连接数。我需要在做其他工作的同时关注它,以帮助其他开发人员识别服务何时出现故障。

手表的结果是一个介于 1 和 5000 之间的数字。当数字低于 500 时,我想将其显示为绿色;当数字介于 501 和 4000 之间时,我想将其显示为黄色;当数字高于 4000 时,我想将其显示为红色。

是否有一个命令可以根据我的命令的值轻松设置颜色?

答案1

我写了这个小脚本,将其命名为颜色:

#!/bin/bash

result=$($@)

GREEN="1;32m"
YELLOW="1;33m"
RED="1;31m"

if [ "$result" -lt "500" ]
then
        echo -e "\033[$GREEN  $result  \033[0m" ;
elif [ "$result" -ge "500" -a "$result" -le "4000" ]
then
        echo -e "\033[$YELLOW  $result  \033[0m" ;
else
        echo -e "\033[$RED  $result  \033[0m" ;
fi

您现在可以运行:

watch --color ./color <your command here>

确保您的命令仅输出一个数字。否则您必须正确处理输出并将其分配给result变量。

答案2

中亚区域经济合作组织可能是您正在寻找的:
Ubuntu 手册上的手册页

在此处输入图片描述

安装

在基于 Debian 的系统上,你可以通过以下方式轻松安装

sudo apt-get install ccze

用法

使用方式如下:

tail -f /var/log/syslog | ccze

插件

ccze如果您不喜欢默认的配色行为,您可以通过插件扩展功能。遗憾的是,我从来没有写过任何插件,因为我对默认行为很满意,所以我只能指导您ccze-plugin手册页

答案3

我认为你可以为手册页添加颜色然而(在运行了几次谷歌搜索,我认为您要找的东西不存在。

答案4

你可以用tput它来给你的生活增添色彩。例如:

tput setf 3 # textcolor green
tput setf 6 # red
tput sgr0 # back to normal
echo "$(tput setf 6)$line$(tput setf sgr0)"

使用 tput 可以获得更多乐趣http://www.ibm.com/developerworks/aix/library/au-learningtput/

相关内容