Pré-defina cores para o Terminal?

13

Eu estava tentando lembrar como eu poderia pré-definir as cores dentro do arquivo .bashrc para que elas pudessem ser chamadas quando eu fiz ${RED} , por exemplo.

Não me lembro se esse foi o jeito certo de fazer isso, mas foi algo assim se me lembro;

NC="3[0;0;0m"      # no color or formatting
RED="3[1;49;91m"   # color red
BLU="3[1;49;94m"   # color blue
GRN="3[1;49;32m"   # color green

outra, lembro-me, estava usando function para que pudesse ser usado a qualquer momento em qualquer lugar. Eu tinha um arquivo mostrando-me como fazer isso, mas perdi esse arquivo que mostrava como fazê-lo e não me lembro como funciona.

    
por souravc 01.03.2015 / 13:10

3 respostas

12

Você pode definir uma função no seu ~/.bashrc da seguinte forma

showred(){
    export RED='3[1;49;91m'
    export NC='3[0;0;0m'
    echo -e $RED"$@"$NC
}

Fonte ~/.bashrc as . ~/.bashrc ou abra um novo terminal e tente.

Você também pode escrever em cores enquanto escreve algo no terminal usando echo ou printf da seguinte forma,

    
por souravc 01.03.2015 / 15:58
4
declare -r RED='3[0;31m'
declare -r GREEN='3[0;32m'
declare -r NC='3[0m'
    
por Eran Ben-Natan 01.03.2015 / 15:38
3

Você pode ter visto a sintaxe $'...' , o que faz com que o shell interprete sequências de contrabarra:

NC=$'\e[0m'       # no color or formatting
RED=$'\e[1;31m'   # color red
GRN=$'\e[1;32m'   # color green
BLU=$'\e[1;34m'   # color blue

Outra maneira de fazer isso é usar tput :

NC=$(tput sgr0)                  # no color or formatting
RED=$(tput bold; tput setaf 1)   # color red
GRN=$(tput bold; tput setaf 2)   # color green
BLU=$(tput bold; tput setaf 4)   # color blue

Você pode combiná-las com as funções do wrapper na resposta do souravc; você não precisará de -e .

    
por deltab 02.03.2015 / 05:54