2010-03-13 19 views
13

podczas kompilacji niektórych projektów na terminalu linuxowym, generalnie uzyskuję długie wyjście składające się z dużej ilości informacji. Zwykle ta informacja to MONOCHROME. Zastanawiam się, czy bash można modyfikować jakoś tak we wszystkich wyjściach lub w pewnych szczególnych wyjść (jak z Makefile, etc) można uzyskać różne kolory dependeing na, na przykład:Otrzymuj kolorowe wydruki w bashu

make[1]: Leaving directory 

lub

g++ -DHAVE_CONFIG_H  -I. 

itp

Dzięki

Odpowiedz

10

Jasne, wystarczy użyć funkcji bash, jak, powiedzieć jedno:

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]} 
} 

(oryginalnie przez Highlight Warnings in Make.)

+0

poniższej odpowiedzi są dobre i miłe, ale to jest tylko jeden, który pracuje w Solaris xterm –

5

Można to zrobić przenośnie za pomocą polecenia tput i bazy danych terminfo(5). Na przykład

tput setf 5 

z terminala jako standardowe wyjście, ustawia pierwszoplanowy kolor fioletowy (lub coś podobnego, jestem kolor ciemno). tput setf 0 resetuje kolor pierwszego planu do domyślnego.

Aby uzyskać więcej informacji, przejrzyj terminfo.

+0

bardzo śmieszne :-P Bardzo dziękuję – flow

14

Znalazłem, że w bash tput setf nie działa. Znalazłem te polecenia dla basha, które działają dobrze

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' jest bardzo małe narzędzie o wielu innych poleceń [] (http://stackoverflow.com/a/20983251/24874) do kontrolowania stanu terminalu i zawartości w skryptach powłoki. –

1

instalowania i korzystania colormake jest kolejnym prostym rozwiązaniem.

sudo apt-get install colormake