Terminal için renkleri önceden tanımlansın mı?


13

.bashrcDosyanın içindeki renkleri nasıl önceden tanımlayabileceğimi hatırlamaya çalışıyordum, ${RED}örneğin yaptığımda çağrılabileceklerdi .

Bunu yapmanın doğru yolu olup olmadığını hatırlayamıyorum, ama hatırlayabilirsem böyle bir şeydi;

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

başka bir hatırlıyorum, functionböylece her yerde her zaman kullanmak olabilir kullanıyordu. Bana bunu nasıl yapacağımı gösteren bir dosya var ama nasıl yapılacağını gösteren bu dosyayı kaybettim ve nasıl gittiğini hatırlayamıyorum.

Yanıtlar:


12

~/.bashrcAşağıdaki gibi bir işlevi tanımlayabilirsiniz:

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

Kaynak ~/.bashrcolarak . ~/.bashrcveya yeni bir terminal açın ve deneyin.

resim açıklamasını buraya girin

Ayrıca aşağıdaki gibi echoveya kullanarak terminalde bir şeyler yazarken renklerde yazabilirsiniz printf,

resim açıklamasını buraya girin


Bu, bunu yapmanın daha dostça ve daha temiz bir yolu gibi görünüyor.

4
declare -r RED='\033[0;31m'
declare -r GREEN='\033[0;32m'
declare -r NC='\033[0m'

3

$'...'Kabuğun ters eğik çizgi dizilerini yorumlamasına neden olan sözdizimini görmüş olabilirsiniz :

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 kullanarak bunu yapmanın başka bir yolu :

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

Bunları souravc yanıtında sarma işlevleriyle birleştirebilirsiniz; ihtiyacınız olmayacak -e.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.