Добавить --color ко всем командам Unix - PullRequest
1 голос
/ 19 апреля 2009

Возможно ли "псевдоним" всех команд для добавления --color? Или вместо этого он автоматически активируется для каждой программы, которая его поддерживает?

Ответы [ 4 ]

3 голосов
/ 19 апреля 2009

Вы должны быть осторожны с этим, особенно при цепочке вызовов.

grep --color=yes 'foo' bar.txt | less   #leads to weird ANSI stuff in output
grep --color=yes 'foo' bar.txt | less -R #binary codes interpreted as colors

По сути, это может испортить конвейерную обработку ... Я бы порекомендовал совмещать объекты с цветным выводом для отдельных команд, чтобы избежать выполнения команды "cmd | myprog" и получения странных результатов из-за встроенного ANSI.

2 голосов
/ 19 апреля 2009

Как оболочка автоматически узнает, какие программы поддерживают опцию --color? Вы должны будете предоставить ему список, и пока вы собираетесь это сделать, вы можете просто дать ему список команд псевдонимов для запуска. Я полагаю, что это может быть сделано программно с помощью чего-то вроде этого (в bash):

for cmd in ls blah foo; do
    alias "$cmd=$cmd --color"
done
1 голос
/ 19 апреля 2009

На самом деле очень мало программ, поддерживающих опцию --color, и на самом деле они не написаны ни одной организацией. Таким образом, они не ссылаются на центральное место для своих вариантов. Черт возьми, у них даже нет единого установленного аргумента, так что только опция --color в конце каждой команды может нанести большой ущерб!

Боюсь, вам придется использовать псевдоним каждый и один. Например, для ls:

alias ls='ls --color'
0 голосов
/ 19 апреля 2009

вместо попытки изменить каждую команду

почему бы просто не изменить способ отображения цветов на консоли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...