Estive procurando apimentar minha experiência no Terminal, entre outras coisas, adicionando um pouco de cor. Eu usei o tput
comando para criar um prompt com boa aparência. Isso faz parte do meu .bash_profile
:
BLACK=$(tput setaf 0)
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
WHITE=$(tput setaf 7)
BOLD=$(tput bold)
REVERSE=$(tput rev)
RESET=$(tput sgr0)
export PS1="${WHITE}$(date "+%H:%M") ${MAGENTA}\u${WHITE}@${MAGENTA}$(scutil --get ComputerName)${WHITE}:${MAGENTA}\w\n${GREEN}\$ ${REVERSE}"
Observe o $ {REVERSE} (ou $(tput rev)
) no final do prompt, o que destaca os comandos digitados adicionando uma cor de fundo.
Meu problema, no entanto, é que, ao executar qualquer comando, o estilo não é redefinido automaticamente ao pressionar enter, o que, neste caso, adiciona um fundo verde indesejado à saída do comando. Como posso redefinir o terminal antes da execução do comando?
trap "tput sgr0" DEBUG
, o que surpreendentemente parece funcionar.