Я настроил gnome-terminal
в .bashrc
, чтобы иметь пользовательские цвета:
PS1='${debian_chroot:+($debian_chroot)}\[\033[00;37m\][\[\033[00;32m\]\t\[\033[00;37m\]] \[\033[01;34m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[00;37m\]:\[\033[01;34m\]\w\[\033[01;32m\]$ '
И это означает, что при выполнении чего-то вроде этого:
Выходные данные выглядят так, хотя первая строка должна быть белой и белой, пока я не сделал команду, набранную также зеленым:
Так как я могу сделать так, чтобы цвет выходного текста не зависел от того факта, что я установил зеленый цвет команды? Я использую Ubuntu GNOME 15.04 с GNOME 3.16.
Обновление информации:
Я заметил, что при запуске sudo rkhunter --nocolor --update
вывод все зеленый.
Проблема состоит в том, что Вы устанавливаете команду, чтобы быть в зеленом, но не закрываете цветной управляющий код. Поэтому все последующие строки, включая вывод любых команд, которые не имеют их собственного форматирования примененным, отображают тем цветом. Как обходное решение (источник), Вы могли trap
печать близкого кода к сигналу ОТЛАДКИ. Добавьте эту строку к Вашему ~/bashrc
trap 'printf "\e[0m" "$_"' DEBUG
Это распечатает \e[0m
(который закроет открытый цветовой код). Поскольку это trap
плетеная корзинка к DEBUG
сигнал, это будет выполняться перед любой командой Вы работаете. Так, между ударом Входят и команда, на самом деле работающая. Как объяснено в man bash
:
Если sigspec является ОТЛАДКОЙ, аргумент команды выполняется, прежде чем каждая простая команда, для команды, команды случая, выберет команду, каждую арифметику для команды, и прежде чем первая команда выполнится в функции оболочки (см. ГРАММАТИКУ SHELL выше).