我正在运行一个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/