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

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

Я пытаюсь сделать свои bash PS1подсказки по цветам в соответствии сСоляризованная тема. У меня естьсоляризованныйустановлен и работает iTerm2, но пока не удалось создать пользовательскую подсказку PS1, соответствующую теме.

Я пробовал использовать для голубого цвета такие значения, как следующие, но в итоге получал либо не цвет, либо неправильный цвет. \033[0;37m

Приведенные выше значения я получил по следующей ссылке. https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized

решение1

Если то, о чем вы спрашиваете,Escape-последовательности ANSI, Вот несколько советов:

0 Black
1 Red
2 Green
3 Yellow/Brown
4 Blue
5 Pink
6 Cyan
7 White/Gray

Каждый из них применяется к цвету переднего плана или фона.

3_  sets grim    foreground color
9_  sets intense foreground color
4_  sets grim    background color
10_ sets intense background color
# 3-4, 9-10 and a code for a color.

Например, printf "\033[1;44;97m"вы делаете фон 44(мрачно-синий) передним планом 97(интенсивно-белым).

Есть и другие полезные цветовые коды, которые вам также стоит использовать:

0 reset all colors
1 bold
3 italics
4 underline
5 blink
7 inverse

Чтобы было удобнее работать с этим, вы можете создать набор псевдонимов, например fiblue fred bblackи т. д. Вы также можете добавить следующую функцию в свой bashrc:

ansi() {
    printf "\033[$1"
}

Так что вместо того, чтобы писать , \033[1;35mвы делаете ansi '1;35m', и писать псевдонимы цветов с помощью этой функции более удобно.

Вам также следует обратить внимание, что установка цвета фона сбрасывает уже установленный цвет переднего плана, поэтому вам следует использовать\033[misc;background;foregroundm.

Таким образом, вы можете нарисовать все, PS1что вам нравится. Вот пример:

PS1="\033[0;1;36m\u\033[0;1m:\033[1;103;30m\t\033[0m \033[1;92m\$\033[0m \r"

Также посмотритеbash_it.

Надеюсь, я ответил на ваш вопрос.

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