Giriş
The echo
komutu, belirli bir dizeyi şuna verir: standart çıkış borusu, tipik olarak terminali işaret eder. Standart çıkış borusu diğer arayüzleri gösterebilse de – echo
komutu tipik olarak terminalde mesajları yazdırmak ve görüntülemek için kullanılır. Varsayılan olarak, görüntülenen mesajın metni terminaldeki diğer metnin rengini devralır (kendi içinde özelleştirilebilir). Ancak - çıktı rengini değiştirmenin birkaç yolu vardır. echo
– hem bireysel diziler hem de tüm mesajlar için.
Bu kısa kılavuzda, çıktı rengini nasıl değiştirebileceğinize bir göz atacağız.
echo
ANSI kaçış kodlarını kullanan Linux tabanlı sistemlerde,tput
ve Bash betiklerinde bu işlemi nasıl daha az ayrıntılı hale getirebileceğiniz.
ANSI Kaçış Kodları ile Çıktı Rengini Değiştirme
Rengi değiştirmenin en kolay yolu ANSI çıkış dizileri/kodlarıdır. Tüm ANSI kaçış kodları şu şekilde başlar: Escape
çeşitli formatlarda temsil edilebilen karakter – 27
ondalık olarak, x1B
onaltılık olarak, kontrol anahtarı olarak ^[
ya da 33
sekizli formatta. Dizileri daha sonra komut takip eder:
33[command
Nerede açılış parantez (Kontrol Sırası İntrodüseri) isteğe bağlıdır, ancak komutu kaçış karakterinden ayırmaya yardımcı olur. koyduğun zaman renk kodu komut olarak, gelen metnin rengini değiştirir:
33[0;34
0;34
örneğin mavi rengin kodudur. Yalnızca bununla, metin rengini değiştirebilirsiniz. echo
ile:
33[0;34Text
Nerede Text
mavi renk olurdu. Alternatif olarak, yazdırmak için basit bir bash betiğini düşünün. "Fransaya hoş geldin" Fransız bayrağının renklerinde:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
İsteğe bağlı -e
bayrağı echo
komutu gibi özel karakterler kullanmanıza izin verir. n
(yeni satır) ve t
(sekme) giriş dizesinin içinde.
Komut dosyasını çalıştırdığınızda:
$ ./colors.sh
Sonuç olarak:
ANSI kodları renkle sınırlı değildir, stil için de uygulanabilir. kodlar 0..9
metin stillerini temsil ederken, kodlar 30...37
renkleri temsil eder:
Renk | Kodları | Metin Stilleri | Kodları |
Siyah | 30 | Basit metin | 0 |
Kırmızı | 31 | Kalın yazı | 1 |
Yeşil | 32 | Düşük yoğunluklu metin | 2 |
Kahverengi / Turuncu | 33 | Metnin altını çiz | 4 |
Mavi | 34 | Yanıp sönen metin | 5 |
Mor | 35 | Görünmez metin | 8 |
Mavi | 36 | üstü çizili metin | 9 |
Açık Gri | 37 |
Bu seçeneklerden bazılarını keşfetmek için bir bash betiği oluşturalım:
#!/bin/bash
echo -e "33[0;33mSample text"
echo -e "33[1;33mBold text"
echo -e "33[2;33mLow intensity text"
echo -e "33[4;33mUnderline text"
echo -e "33[5;33mBlinking text"
echo -e "33[8;33mInvisible text"
echo -e "33[9;33mStrikethrough text"
Bu betiği çalıştırmak şu sonuçlarla sonuçlanır:
En iyi uygulamalar, endüstri tarafından kabul edilen standartlar ve dahil edilen hile sayfası ile Git'i öğrenmek için uygulamalı, pratik kılavuzumuza göz atın. Googling Git komutlarını durdurun ve aslında öğrenmek o!
Benzer şekilde, bu metinlerin arka plan rengini kodlar kullanarak değiştirebilirsiniz. 40..47
:
renk | Kodları |
Siyah | 40 |
Kırmızı | 41 |
Yeşil | 42 |
Kahverengi / Turuncu | 43 |
Mavi | 44 |
Mor | 45 |
Mavi | 46 |
Açık Gri | 47 |
Belirli bir dizenin arka planını değiştirmek, yazı tipi rengini değiştirirken olduğu gibi aynı kurala indirgenir - kodun kendisi davranışı değiştirir:
#!/bin/bash
BLUE='33[0;44m'
BLACK='33[0;30m'
WHITE='33[0;30;47m'
RED='33[0;41m'
echo -e "${BLUE}Welcome ${WHITE}to ${RED}France"
Not: Genel bir kural olarak, 10 ekleyerek yazı tipi renklerini arka plan renklerine çevirebilirsiniz. 30
siyah yazı rengi mi, 40
siyah arka plan rengidir.
Çıktı Rengini tput ile değiştirin
ANSI kodlarına bir alternatif, tput
komut:
$ tput setaf color_code
setf
8 renge izin verirken, setaf
256 renge izin verir, böylece kullandığınız komuta bağlı olarak aralarında geçiş yapabilirsiniz 0..7
ve 0..255
renk kodları olarak Her ikisi de komutlar adamak 0..7
aynı renk kodlarına sahipken, setaf
, 8..15
yüksek yoğunluklu renklerdir ve 16..231
ilk 8'in farklı tonlarıdır ve 232..255
gri tonlamalı renklerdir:
kredi: Vikipedi
En sonunda, tput
ayrıca diğer komutlarla arka plan rengini değiştirmenize, kalın eklemenize, yoğunluğu düşürmenize vb. izin verir:
Metin Stilleri | Komutları |
Ön plan rengi | setaf |
Arka plan rengi | setab |
Stil yok | sgv0 |
Kalın yazı | pim |
Düşük yoğunluklu metin | sönük |
Metnin altını çiz | küstah |
Yanıp sönen metin | goz kirpmak |
Ters metin | devir |
kullanan başka bir komut dosyası oluşturalım. tput
çıktı rengini değiştirmek için echo
:
#!/bin/bash
YELLOW=`tput setaf 3`
echo "${YELLOW}Changing"
WHITE=`tput setaf 7 bold`
echo "${WHITE}Colors"
BLUE=`tput setaf 4 smul`
echo "${BLUE}With tput"
CYAN=`tput setaf 6 blink`
echo "${CYAN}is less"
RED=`tput setab 1 setaf 7`
echo "${RED}verbose!"
Bu komut dosyası, terminalde aşağıdaki çıktıyı yazdıracaktır:
tput komutu, basit bir renk koduyla herhangi bir rengi yazdırmanın kolay bir yolunu sunar. Şimdi tput komutu için mevcut olan tüm renk kodlarını yazdırabilen bir komut dosyası oluşturalım:
#!/bin/bash
tput init
end = $ (($ (tput colors) - 1))
w = 1
for c
in $ (seq 0 $end)
do
eval "$(printf " tput setaf % 3 s " " $c ")"
echo - n "$_"
[[$c - ge $ ((w * 2))]]
offset = 2 || offset = 0
[[$ (((c + offset) % (w - offset))) - eq $ (((w - offset) - 1))]]
echo
done
tput init
0 ila 255 renk ve bunların kodlarını yazdıracaktır:
Sonuç
Bu kısa kılavuzda - rengini nasıl değiştirebileceğinize bir göz attık. echo
'nin Linux'taki çıktısı – ANSI Escape Sequences ve tput
Komut.
Ayrıca, Bash değişkenlerini kullanarak süreci nasıl daha az ayrıntılı hale getirebileceğinizi, arka plan renklerini ince ayarlayarak ve metin stilini nasıl yapabileceğinizi de araştırdık.