tput setaf 1; hostname; tput sgr0
tput
consulta o banco de dados do terminal para o recurso correspondente. Aqui setaf
para definir cor ANSI 1 (vermelho), sgr0
para selecionar rendição gráfica nenhum para voltar aos atributos padrão. Em vez de tput sgr0
, você também pode usar tput op
(par original) para redefinir somente a cor do plano de fundo e do primeiro plano e deixar outros atributos gráficos (negrito, sublinhado, destaque, reversão ...) sozinhos.
Alguns shells como zsh
, tcsh
ou fish
têm suporte embutido para consultar esse banco de dados ou mapear nomes de cores para códigos ANSI (como zsh
ou fish
), mas não bash
.
Em zsh
, usando a expansão de prompts para imprimir o nome do host em red
:
print -P '%F{red}%m%f'
( %f
apenas redefine a cor do primeiro plano)
Em tcsh
ou zsh
com o echotc
embutido usando códigos termcap em vez de terminfo:
echotc AF 1; hostname; echotc me
( zsh
tem echoti
para os códigos terminfo setab / sgr0 como versões modernas de tput
).
Em zsh
, o sinalizador de expansão do parâmetro %
ativa a expansão imediata na expansão do parâmetro, portanto, você pode fazer:
red=%F{red} normal=%f
echo ${(%)red}whatever%{(%)normal}
Em zsh
, você também encontrará uma função colors
autoloadable que pode ser executada para ajudar os auxiliares a escrever coisas em cores:
autoload colors; colors
echo $fg[red]whatever$fg[default]