1

Я получаю разные варианты поведения в терминале с одним и тем же определением в Snow Leopard и Lion.

В моей системе Snow Leopard моя терминальная подсказка определяется в .profile следующим образом:

export PS1='\[\e[32;1m\]\w\$\[\e[0m\] '

Это создает зеленое-на-черном приглашение с выводом от нормальных команд по-умолчанию белым-на-черном. (Например, если я наберу man, я получу вывод. Какая страница руководства вам нужна? в белом на черном.)

В моей системе Lion с тем же профилем .profile я получаю ту же подсказку «зеленый на черном», но цвет текста больше не переключается обратно на белый на черном. (Если я наберу man, я получу вывод. Какая страница руководства вам нужна? в том же зелёном на чёрном цвете, что и подсказка.)

Почему терминал Lion ведет себя по-другому - и как мне заставить его изменить текст обратно на белый на черном?

2 ответа2

2

Лучший способ обработки настроек подсказок (поскольку он более переносим между обновлениями и разными системами) - использование tput с кодами terminfo, чтобы всегда получать правильные коды для вашего типа термина. На странице руководства «использует базу данных terminfo, чтобы сделать значения зависящих от терминала возможностей и информацию доступной для оболочки»

Вот пример из моего .profile

red=$(tput setaf 1)
green=$(tput setaf 2)
blue=$(tput setaf 4)
reset=$(tput sgr0)
PS1="\[$red\]\u\[$reset\]@\[$green\]\h\[$reset\]:\[$blue\]\w\[$reset\]\$ "

на странице руководства terminfo коды setaf

   set_a_foreground             setaf       AF       Set foreground
                                                     color to #1, using
                                                     ANSI escape

Смотрите tput(1) и terminfo(5) чтобы узнать, что вы можете с этим сделать.

1

Короткий ответ: насколько я могу судить, разницы нет. Проблема всегда заключалась в том, что в настройках моего терминала был установлен основной цвет текста ярко-зеленый!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .