Existe um comando linux que me permite codificar em cores o resultado de outro comando?

5

Estou executando um watch em um comando para monitorar o número de conexões abertas de um serviço que estamos diagnosticando. Preciso ficar de olho nele enquanto faço outro trabalho, para ajudar outros desenvolvedores a identificar quando o serviço está funcionando.

O resultado do relógio é um número entre 1 e 5000. Eu gostaria de mostrar o número como verde quando está abaixo de 500, amarelo quando está entre 501 e 4000 e vermelho acima de 4000.

Existe um comando que pode definir a cor facilmente com base no valor do meu comando?

    
por STW 19.06.2012 / 20:34

4 respostas

3

Eu escrevi este pequeno script que chamei de cor:

#!/bin/bash

result=$($@)

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

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

Agora você pode executar:

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

Certifique-se de que seu comando apenas exibe um número. Senão você tem que lidar com a saída corretamente e atribuí-la à variável result .

    
por 19.06.2012 / 21:20
3

CCZE pode ser o que você está procurando: manpages.ubuntu.com/manpages/intrepid/man1/ccze.1.html"> página do manual nos manuais do Ubuntu

Instalação

EmsistemasbaseadosemDebian,vocêpodefacilmenteinstalá-lovia

sudoapt-getinstallccze

Uso

Useassim:

tail-f/var/log/syslog|ccze

Plugins

Seocomportamentodecoloraçãopadrãodecczenãofordoseuagrado,vocêpoderáestenderafuncionalidadepormeiodeplug-ins.Infelizmente,eununcaescrevinada,jáqueeusoubemservidocomocomportamentopadrão,entãoeusópossodirecioná-loparao ccze-plugin man page .

    
por 19.06.2012 / 20:56
1

Acho que você pode colorir as páginas man , no entanto (depois de executar vários Google , não acho que o que você está procurando exista.

    
por 19.06.2012 / 20:42
1

Você pode usar tput para colocar um pouco de cor em sua vida. Exemplos são

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

Isso e mais divertido com tput no link

    
por 19.06.2012 / 20:58