Você está basicamente querendo resetar a cor do terminal antes que o bash execute o comando. Isso pode ser feito com um trap
.
Por exemplo:
trap '[[ -t 1 ]] && tput sgr0' DEBUG
O Bash executa a interceptação DEBUG
imediatamente antes do comando, portanto, isso resultará na execução de tput sgr0
(que restaura os atributos de formatação) antes de cada comando.
O [[ -t 1 ]]
é uma verificação de segurança para garantir que o STDOUT seja realmente um terminal. Pode haver alguns casos em que o STDOUT do bash não está conectado a um terminal (tubulação, ssh remoto, etc.) e, portanto, você não deseja que tput
envie códigos de escape de terminal.