Czy coś takiego istnieje w Uniksie?
$ echo "this should show in red" | red
$ echo "this should show in green" | green
$ echo "this should show in blue" | blue
Nie mam tu na myśli dosłownego tekstu kodu koloru (na przykład wklejenia do pliku). Chodzi mi o to, aby tekst rzeczywiście pojawił się w terminalu jako ten kolor. czy to możliwe?
rgb001
,rgb123
itp See perldoc.perl.org/Term/ANSIColor.html#Supported-Colors więcej szczegółów.Użyłbyś
tput
do tego:Można to wykorzystać do zbudowania potoku:
Podstawowe kolory to odpowiednio czarny (0), czerwony (1), zielony, żółty, niebieski, magenta, cyjan i biały (7). Wszystkie szczegóły znajdziesz na stronie
terminfo(5)
podręcznika .źródło
Z
zsh
:I wtedy:
źródło
(jak omówiono w komentarzach, użyj
tput
zamiast tego, jeśli masz)Za pomocą powłoki bourne i
echo
(wbudowanego) polecenia, które rozumie ucieczkę ANSI\e
z-e
opcją:lub bardziej ogólny skrypt powłoki (powiedzmy
/usr/local/bin/colorize
):IFS=
jest potrzebny, aby zapobiec przycinaniu białych znaków (szczegóły w POSIX ).źródło
tput
.