É possível desligar as cores de um comando específico como ls
, mas sem usar a API do próprio comando? Existe um tipo de variável env que desativa a coloração de um comando como doing COLOR=off ls
? Qualquer solução seria muito apreciada.
Editar: quero uma solução geral que seja aplicável a todos os comandos. comoCOLOR=off command_name
Responder1
Se você estiver disposto a permitir algumas alterações na formatação, você pode simplesmente canalizá-lascat
ls | cat
Sem cores, mas nova linha para cada entrada.
Editar:
Desativando cores por meio das configurações do shell
Verifique o (s) arquivo (s) rc do seu shell e veja onde as cores estão definidas, então faça um novo .<shell>rc_mono
local onde essas configurações são removidas, forneça-o e pronto. Por exemplo, para bash:
$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'
Observe que . ~/.bashrc
deve preceder os novos aliases para ls
e grep
já que sua coloração geralmente é definida em ~/.bashrc
. Então tudo que você precisa fazer é
. ~/bashrc_mono ; ls
Conseqüentemente, um rc "refazer cores" pode ser bom:
$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc
Use por exemplo htop
e você verá a diferença.
Responder2
Uma opção seria definir a TERM
variável para um tipo de terminal que não suporte cores.
Exemplos:
TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o
Dizer aos programas para usarem um terminal burro também pode ter outros efeitos (indesejáveis), dependendo do comando que você executa, por exemplo, vi
pode não reconhecer mais as teclas do cursor.
Como sugerido porFélix JNvocê também pode tentar TERM=xterm-mono
, mas no meu sistema de teste (Git bash no Windows) isso não suprime as cores em contraste com o TERM=dumb
.