Bash on Snow Leopard не підкоряється кінцевим кольорам


12

З новою версією Snow Leopard OS X оновила версію bash до GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0).

Тепер я .bashrcвстановлює такі налаштування:

# Colors
export TERM=xterm-color
export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
export CLICOLOR=1 
export LSCOLORS=ExGxFxDxCxHxHxCbCeEbEb

# Setup some colors to use later in interactive shell or scripts
export COLOR_NC='\e[0m' # No Color
export COLOR_WHITE='\e[1;37m'
export COLOR_BLACK='\e[0;30m'
export COLOR_BLUE='\e[0;34m'
export COLOR_LIGHT_BLUE='\e[1;34m'
export COLOR_GREEN='\e[0;32m'
export COLOR_LIGHT_GREEN='\e[1;32m'
export COLOR_CYAN='\e[0;36m'
export COLOR_LIGHT_CYAN='\e[1;36m'
export COLOR_RED='\e[0;31m'
export COLOR_LIGHT_RED='\e[1;31m'
export COLOR_PURPLE='\e[0;35m'
export COLOR_LIGHT_PURPLE='\e[1;35m'
export COLOR_BROWN='\e[0;33m'
export COLOR_YELLOW='\e[1;33m'
export COLOR_GRAY='\e[1;30m'
export COLOR_LIGHT_GRAY='\e[0;37m'

Кольори будуть використані пізніше для виведення. Це працювало в попередній версії OSX, але тепер мій вихід не співпрацює.

Деякі ідеї, які не спрацювали.

  • Перемикання Terminal.app з 64-бітного на 32-розрядне.

Відповіді:


13

Відповідь насправді була набагато простішою. Замість використання \eсимволу втечі використовуйте \033замість цього. Так воно і йде

export COLOR_NC='\e[0m' # No Color
export COLOR_WHITE='\e[1;37m'
export COLOR_BLACK='\e[0;30m'
export COLOR_BLUE='\e[0;34m'
export COLOR_LIGHT_BLUE='\e[1;34m'
export COLOR_GREEN='\e[0;32m'
export COLOR_LIGHT_GREEN='\e[1;32m'
export COLOR_CYAN='\e[0;36m'
export COLOR_LIGHT_CYAN='\e[1;36m'
export COLOR_RED='\e[0;31m'
export COLOR_LIGHT_RED='\e[1;31m'
export COLOR_PURPLE='\e[0;35m'
export COLOR_LIGHT_PURPLE='\e[1;35m'
export COLOR_BROWN='\e[0;33m'
export COLOR_YELLOW='\e[1;33m'
export COLOR_GRAY='\e[1;30m'
export COLOR_LIGHT_GRAY='\e[0;37m'

до:

# Setup some colors to use later in interactive shell or scripts
export COLOR_NC='\033[0m' # No Color
export COLOR_WHITE='\033[1;37m'
export COLOR_BLACK='\033[0;30m'
export COLOR_BLUE='\033[0;34m'
export COLOR_LIGHT_BLUE='\033[1;34m'
export COLOR_GREEN='\033[0;32m'
export COLOR_LIGHT_GREEN='\033[1;32m'
export COLOR_CYAN='\033[0;36m'
export COLOR_LIGHT_CYAN='\033[1;36m'
export COLOR_RED='\033[0;31m'
export COLOR_LIGHT_RED='\033[1;31m'
export COLOR_PURPLE='\033[0;35m'
export COLOR_LIGHT_PURPLE='\033[1;35m'
export COLOR_BROWN='\033[0;33m'
export COLOR_YELLOW='\033[1;33m'
export COLOR_GRAY='\033[1;30m'
export COLOR_LIGHT_GRAY='\033[0;37m'

karbassi Спасибі велике! Я шукав виправлення цілий день. Іншим рішенням буде замість цього використовувати zsh :)
Роберт Ауді

Радий, що це допомогло :)
Алі Карбассі

4

Мій термінал показує кольори.

Спробуйте використовувати щось на кшталт:

PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;33m\]\w\[\033[00m\]\$ '

І подивіться, чи з’являються кольори.


1

Оскільки кольори не надруковані, використання \[& \]в будь-якому кінці запобігає розриву зворотного проміжка та загортання ліній.

export COLOR_NC='\[\033[0m\]' # No Color
export COLOR_WHITE='\[\033[1;37m\]'
export COLOR_BLACK='\[\033[0;30m\]'
export COLOR_BLUE='\[\033[0;34m\]'
export COLOR_LIGHT_BLUE='\[\033[1;34m\]'
export COLOR_GREEN='\[\033[0;32m\]'
export COLOR_LIGHT_GREEN='\[\033[1;32m\]'
export COLOR_CYAN='\[\033[0;36m\]'
export COLOR_LIGHT_CYAN='\[\033[1;36m\]'
export COLOR_RED='\[\033[0;31m\]'
export COLOR_LIGHT_RED='\[\033[1;31m\]'
export COLOR_PURPLE='\[\033[0;35m\]'
export COLOR_LIGHT_PURPLE='\[\033[1;35m\]'
export COLOR_BROWN='\[\033[0;33m\]'
export COLOR_YELLOW='\[\033[1;33m\]'
export COLOR_GRAY='\[\033[1;30m\]'
export COLOR_LIGHT_GRAY='\[\033[0;37m\]'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.