esittely
- echo
komento tulostaa tietyn merkkijonon standardi ulostuloputki, joka tyypillisesti osoittaa terminaaliin. Vaikka vakiolähtöputki voi osoittaa muihin liitäntöihin - echo
komentoa käytetään tyypillisesti viestien tulostamiseen ja näyttämiseen terminaalissa. Oletusarvoisesti näytettävän viestin teksti perii päätteen muun tekstin värin (joka on itsessään muokattavissa). Voit kuitenkin muuttaa tulosteen väriä useilla tavoilla echo
– sekä yksittäisille merkkijonoille että kokonaisille viesteille.
Tässä lyhyessä oppaassa tarkastellaan, kuinka voit muuttaa tulosteen väriä
echo
Linux-pohjaisissa järjestelmissä, joissa käytetään ANSI-pakokoodeja,tput
ja kuinka voit tehdä tästä prosessista vähemmän monisanaisen Bash-skripteissä.
Muuta lähtöväriä ANSI-pakokoodeilla
Helpoin tapa muuttaa väriä on ANSI-pakojaksojen/koodien avulla. Kaikki ANSI-pakokoodit alkavat kirjaimella Escape
merkki, joka voidaan esittää eri muodoissa – 27
desimaalilla, x1B
heksadesimaalimuodossa ohjausnäppäimenä ^[
tai 33
oktaalimuodossa. Sekvenssejä seuraa sitten komento:
33[command
Missä avaussulku (Ohjaussekvenssin esittely) on valinnainen, mutta auttaa erottamaan komennon estomerkistä. Kun laitat a värikoodi komennona se muuttaa tulevan tekstin väriä:
33[0;34
0;34
on koodi esimerkiksi siniselle värille. Pelkästään tämän avulla voit muuttaa tekstin väriä echo
kanssa:
33[0;34Text
Missä Text
olisi värjätty siniseksi. Vaihtoehtoisesti harkitse yksinkertaista bash-komentosarjan tulostamista "Tervetuloa Ranskaan" Ranskan lipun väreissä:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
Valinnainen -e
Suomen lippu echo
komennon avulla voit käyttää erikoismerkkejä, kuten n
(uusi rivi) ja t
(sarkain) syöttömerkkijonon sisällä.
Kun suoritat skriptin:
$ ./colors.sh
Siitä seuraa:
ANSI-koodit eivät rajoitu väreihin, vaan niitä voidaan soveltaa myös tyyliin. Koodit 0..9
edustavat tekstityylejä, kun taas koodit 30...37
edustaa värejä:
Väri | Koodit | Tekstin tyylit | Koodit |
Musta | 30 | Yksinkertainen teksti | 0 |
punainen | 31 | Lihavoitu teksti | 1 |
Vihreä | 32 | Matala intensiteetti teksti | 2 |
Ruskea / oranssi | 33 | Alleviivaa tekstiä | 4 |
sininen | 34 | Vilkkuvaa tekstiä | 5 |
Violetti | 35 | Näkymätön teksti | 8 |
Cyan | 36 | Yliviivattu teksti | 9 |
Vaaleanharmaa | 37 |
Luodaan bash-skripti tutkiaksemme joitain näistä vaihtoehdoista:
#!/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"
Tämän skriptin suorittaminen johtaa:
Tutustu käytännönläheiseen, käytännölliseen Gitin oppimisoppaaseemme, jossa on parhaat käytännöt, alan hyväksymät standardit ja mukana tuleva huijauslehti. Lopeta Git-komentojen googlailu ja oikeastaan oppia se!
Vastaavasti voit muuttaa näiden tekstien taustaväriä koodeilla 40..47
:
väri | Koodit |
Musta | 40 |
punainen | 41 |
Vihreä | 42 |
Ruskea / oranssi | 43 |
sininen | 44 |
Violetti | 45 |
Cyan | 46 |
Vaaleanharmaa | 47 |
Tietyn merkkijonon taustan muuttaminen tiivistyy samaan sääntöön kuin fontin värin vaihtaminen – itse koodi muuttaa toimintaa:
#!/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"
Huomautus: Nyrkkisääntönä – voit kääntää fontin värit taustaväreiksi lisäämällä 10. 30
on musta fontin väri, 40
on musta taustaväri.
Muuta lähtöväriä tput:lla
Vaihtoehto ANSI-koodeille on käyttää tput
komento:
$ tput setaf color_code
setf
sallii 8 väriä, kun taas setaf
sallii 256 väriä, joten voit valita käyttämästäsi komennosta riippuen 0..7
ja 0..255
kuten värikoodeja. molemmat komennot omistavat 0..7
samoihin värikoodeihin, kun taas kanssa setaf
, 8..15
ovat voimakkaita värejä ja 16..231
ovat eri sävyjä ensimmäisistä 8 ja 232..255
ovat harmaasävyvärejä:
Pistetilanne: wikipedia
Lopuksi, tput
Voit myös muuttaa taustaväriä, lisätä lihavointia, alentaa voimakkuutta jne. muilla komennoilla:
Tekstin tyylit | komennot |
Etualan väri | setaf |
Taustaväri | settab |
Ei tyyliä | sgv0 |
Lihavoitu teksti | tappi |
Vähäinen teksti | Sun. |
Alleviivaa tekstiä | Smule |
Vilkkuvaa tekstiä | vilkkua |
Käänteinen teksti | kierros |
Luodaan toinen skripti, joka käyttää tput
muuttaaksesi tulosteen väriä 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!"
Tämä komentosarja tulostaa seuraavan tulosteen terminaaliin:
tput-komento tarjoaa helpon tavan tulostaa mikä tahansa väri yksinkertaisen värikoodin avulla. Luodaan nyt skripti, joka voi tulostaa kaikki tput-komennolla käytettävissä olevat värikoodit:
#!/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
Se tulostaa 0-255 väriä ja niiden koodit:
Yhteenveto
Tässä lyhyessä oppaassa olemme tarkastelleet, kuinka voit muuttaa väriä echo
's-tulostus Linuxissa – ANSI Escape Sequences ja tput
komento.
Olemme myös tutkineet, kuinka voit tehdä prosessista vähemmän monisanaisen käyttämällä Bash-muuttujia, säätämällä taustavärejä ja tyylitekstiä.