Заздалегідь визначте кольори для терміналу?


13

Я намагався запам'ятати, як я міг заздалегідь визначити кольори всередині .bashrcфайлу, щоб вони могли бути викликані, наприклад, коли я це роблю ${RED}.

Я не можу згадати, чи це був правильний спосіб зробити це, але це було щось подібне, якщо я можу згадати;

NC="\033[0;0;0m"      # no color or formatting
RED="\033[1;49;91m"   # color red
BLU="\033[1;49;94m"   # color blue
GRN="\033[1;49;32m"   # color green

інший, як я пам'ятаю, використовував, functionщоб його можна було використовувати в будь-який час у будь-якому місці. У мене був файл, який показує мені, як це зробити, але я втратив цей файл, який показав, як це зробити, і я не можу згадати, як це відбувається.

Відповіді:


12

Ви можете визначити функцію в ~/.bashrcнаступному

showred(){
    export RED='\033[1;49;91m'
    export NC='\033[0;0;0m'
    echo -e $RED"$@"$NC
}

Джерело ~/.bashrcяк . ~/.bashrcабо відкрийте новий термінал і спробуйте.

введіть тут опис зображення

Також ви можете писати кольорами, записуючи щось на терміналі, використовуючи echoабо printfнаступне,

введіть тут опис зображення


Це здається більш привітним і чистішим способом цього зробити.


3

Можливо, ви бачили $'...'синтаксис, який змушує інтерпретувати послідовності зворотної косої оболонки:

NC=$'\e[0m'       # no color or formatting
RED=$'\e[1;31m'   # color red
GRN=$'\e[1;32m'   # color green
BLU=$'\e[1;34m'   # color blue

Ще один спосіб зробити це, використовуючи tput :

NC=$(tput sgr0)                  # no color or formatting
RED=$(tput bold; tput setaf 1)   # color red
GRN=$(tput bold; tput setaf 2)   # color green
BLU=$(tput bold; tput setaf 4)   # color blue

Ви можете комбінувати їх із функціями обгортки у відповіді souravc; вам не знадобиться -e.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.