Как отключить цвета для определенной команды?

Как отключить цвета для определенной команды?

Можно ли отключить цвета для определенной команды, например ls, , но без использования API самой команды? Есть ли переменная env, которая отключит раскраску для команды, например, doing COLOR=off ls? Любое решение было бы весьма признательно.

Редактировать: Мне нужно общее решение, которое будет применимо ко всем командам.COLOR=off command_name

решение1

Если вы готовы разрешить некоторые изменения в форматировании, вы можете просто передать их по каналуcat

 ls | cat

Никаких цветов, но для каждой записи добавляется новая строка.


Редактировать:

Отключение цветов через настройки оболочки

Проверьте rc-файл(ы) вашей оболочки и посмотрите, где установлены цвета, затем создайте новый, .<shell>rc_monoгде эти настройки удалены, загрузите его и все готово. Например, для bash:

$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'

Обратите внимание, что . ~/.bashrcдолжно предшествовать новым псевдонимам для lsи , grepпоскольку их окраска обычно устанавливается в ~/.bashrc. Так что все, что вам нужно сделать, это

. ~/bashrc_mono ; ls 

Соответственно, "переделать цвета"-rc может быть неплохим вариантом:

$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc

Используйте eg htop, и вы увидите разницу.

решение2

Одним из вариантов было бы задать TERMдля переменной тип терминала, который не поддерживает цвета.

Примеры:

TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o

Если указать программам использовать «тупой терминал», это может иметь и другие (нежелательные) эффекты в зависимости от выполняемой команды, например, viони могут перестать распознавать клавиши управления курсором.

Как и предполагалФеликсДжНвы также можете попробовать TERM=xterm-mono, но на моей тестовой системе (Git Bash на Windows) это не подавляет цвета в отличие от TERM=dumb.

Связанный контент