Como desativar as cores de um comando específico?

Como desativar as cores de um comando específico?

É 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_monolocal 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 . ~/.bashrcdeve preceder os novos aliases para lse grepjá 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 htope você verá a diferença.

Responder2

Uma opção seria definir a TERMvariá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, vipode 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.

informação relacionada