Altera a cor da saída do tcsh para qualquer comando

2

Eu quero uma cor diferente para os retornos de terminal:

Exemplo:

$ pwd                //when return key is hit 
$ /home/user/tools   //return value printed in different color, say: grey color

Este requisito não é específico para o comando pwd , mas para qualquer comando enviado para o terminal, meu log irá:

  • $ preto // entrada
  • $ gray // saída

espero que esteja claro.

    
por dochoex 05.07.2013 / 15:24

2 respostas

2

Você geralmente precisa capturar a saída dos comandos e incluir instruções echo com os códigos de cores que precedem as linhas. Você também precisa colocar as cores de volta ao modo "normal" assim que estiver pronto para manter seu prompt com a aparência correta. Aqui está uma maneira de conseguir o que você quer:

$ echo -e '\e[1;30m''pwd'; echo -en '\e[0m';

O código \e[1;30m' is gray, the code \ e [0m 'coloca a exibição novamente no modo normal.

Você pode colocar isso em um script ou criar um alias que use o nome de um comando como um argumento e o transmita para a construção echo ... ; echo acima.

Exemplo

Este é um exemplo muito básico, mas apenas para dar uma ideia de como isso pode ser implementado, em um shell Bash:

$ c () { echo -e '\e[1;30m''\'; echo -en '\e[0m'; }

Isso criará uma função chamada c . Você pode passar argumentos como pwd :

$ c pwd
/home/saml

Você tem que usá-lo com discrição embora. Você não pode passar coisas como ls .

    
por 05.07.2013 / 16:43
2

O shell na verdade não tem nada a ver com cores, é o dispositivo terminal (emulador) que as manipula. No linux isso é padronizado e praticamente todos eles (VT's, xterms, etc.) respondem a seqüências de escape ANSI . A resposta do slm demonstra seu uso básico.

Se você quiser algo que possa usar como pipe, eu tenho um utilitário C que escrevi para multiplexar a saída de vários processos assíncronos em segundo plano em um console usando cores diferentes, o que é útil para depurar coisas inter-relacionadas mas separadas.

link

Há um README no tarball. Exemplo básico:

ls | utf8-colorize -1 3 -b

A saída ls aparecerá em negrito amarelo. Você pode definir o fundo também; aliases também podem ser úteis, por exemplo;

alias green='utf8-colorize -1 2'
    
por 05.07.2013 / 20:13