2010-03-13 14 views
13

durante la compilazione di alcuni progetti su terminale Linux, di solito ottengo un output lungo composto da molte informazioni. Di solito questa informazione è MONOCROMATICA. Mi chiedo se bash può essere modificato in qualche modo, così in tutte le uscite o in alcuni risultati specifici (come da Makefile, ecc) posso ottenere diversi colori dependeing su, per esempio:Ottieni output a colori in bash

make[1]: Leaving directory 

o

g++ -DHAVE_CONFIG_H  -I. 

ecc

Grazie

risposta

10

Certo, basta usare le funzioni di Bash, come, ad esempio questo:

make() 
{ 
    pathpat="(/[^/]*)+:[0-9]+" 
    ccred=$(echo -e "\033[0;31m") 
    ccyellow=$(echo -e "\033[0;33m") 
    ccend=$(echo -e "\033[0m") 
    /usr/bin/make "[email protected]" 2>&1 | sed -E -e "/[Ee]rror[: ]/ s%$pathpat%$ccred&$ccend%g" -e "/[Ww]arning[: ]/ s%$pathpat%$ccyellow&$ccend%g" 
    return ${PIPESTATUS[0]} 
} 

(Originariamente via Highlight Warnings in Make.)

+0

Le risposte di seguito sono buoni e pulito, ma questo è l'unico che funziona in Solaris xterm –

5

È possibile farlo portabile utilizzando il comando tput e il database terminfo(5). Per esempio,

tput setf 5 

con il terminale di serie out, sarà impostare il colore di primo piano al viola (o qualcosa di simile, io sono daltonico). tput setf 0 ripristina il colore di primo piano sul valore predefinito.

Per ulteriori informazioni, consultare terminfo.

+0

molto divertenti :-P grazie mille – flow

14

Ho trovato che in bash tput setf non funziona. Ho trovato questi comandi per bash che funzionano bene

handy tput commands 

tput bold - Bold effect 
tput rev - Display inverse colors 
tput sgr0 - Reset everything 
tput setaf {CODE}- Set foreground color, see color {CODE} below 
tput setab {CODE}- Set background color, see color {CODE} below 
Colors {code} code for tput command 

Color {code} Color 
0 Black 
1 Red 
2 Green 
3 Yellow 
4 Blue 
5 Magenta 
6 Cyan 
7 White 
+0

'tput' è un grande strumento po 'con molti altri comandi [] (http://stackoverflow.com/a/20983251/24874) per il controllo dello stato del terminale e del contenuto nello scripting della shell. –

1

installazione e l'utilizzo colormake è un'altra opzione semplice.

sudo apt-get install colormake 
Problemi correlati