Sissejuhatus
. echo
käsk väljastab antud stringi standardne väljundtoru, mis tavaliselt osutab terminalile. Kuigi standardne väljundtoru võib osutada teistele liidestele – echo
käsku kasutatakse tavaliselt sõnumite printimiseks ja kuvamiseks terminalis. Vaikimisi pärib kuvatava sõnumi tekst terminalis oleva muu teksti värvi (mis on iseenesest kohandatav). Siiski on väljundi värvi muutmiseks mitu võimalust echo
– nii üksikute stringide kui ka tervete sõnumite jaoks.
Selles lühikeses juhendis vaatleme, kuidas saate väljundvärvi muuta
echo
Linuxi-põhistes süsteemides, kasutades ANSI paokoode,tput
ja kuidas muuta see protsess Bashi skriptides vähem üksikasjalikuks.
Muutke väljundi värvi ANSI paokoodidega
Lihtsaim viis värvi muutmiseks on ANSI põgenemisjärjestuste/koodide kaudu. Kõik ANSI paokoodid algavad tähega Escape
märk, mida saab esitada erinevates vormingutes - 27
kümnendkohana, x1B
kuueteistkümnendsüsteemis juhtklahvina ^[
või 33
kaheksandvormingus. Seejärel järgneb järjestustele käsk:
33[command
Kus avasulg (Juhtimisjärjestuse tutvustaja) on valikuline, kuid aitab eraldada käsu paomärgist. Kui paned a värvikood käsuna muudab see saabuva teksti värvi:
33[0;34
0;34
on näiteks sinise värvi kood. Ainult selle abil saate teksti värvi muuta echo
kus:
33[0;34Text
Kus Text
oleks sinist värvi. Teise võimalusena kaaluge printimiseks lihtsat bash-skripti “Tere tulemast Prantsusmaale” Prantsuse lipu värvides:
#!/bin/bash
BLUE='33[0;34m'
WHITE= '33[0;37m'
RED= '33[0;31m'
echo -e "${Blue}Welcome ${WHITE}to ${RED}France"
Valikuline -e
lipp echo
käsk võimaldab kasutada erimärke nagu n
(uus rida) ja t
(tab) sisendstringi sees.
Kui olete skripti käivitanud:
$ ./colors.sh
Selle tulemuseks on:
ANSI-koodid ei piirdu värviga, vaid neid saab kasutada ka stiili jaoks. Koodid 0..9
esindavad tekstistiile, samas kui koodid 30...37
esindavad värve:
Värv | Koodid | Tekstistiilid | Koodid |
Must | 30 | Lihtne tekst | 0 |
Red | 31 | Rasvane tekst | 1 |
Green | 32 | Madala intensiivsusega tekst | 2 |
Pruun/oranž | 33 | Tekst joon alla | 4 |
sinine | 34 | Vilkuv tekst | 5 |
purpurne | 35 | Nähtamatu tekst | 8 |
Cyan | 36 | Läbikriipsutatud tekst | 9 |
Light Gray | 37 |
Loome bash-skripti, et uurida mõnda järgmistest valikutest:
#!/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"
Selle skripti käivitamine annab tulemuseks:
Tutvuge meie praktilise ja praktilise Giti õppimise juhendiga, mis sisaldab parimaid tavasid, tööstusharus aktsepteeritud standardeid ja kaasas olevat petulehte. Lõpetage Giti käskude guugeldamine ja tegelikult õppima seda!
Samamoodi saate koodide abil muuta nende tekstide taustavärvi 40..47
:
värv | Koodid |
Must | 40 |
Red | 41 |
Green | 42 |
Pruun/oranž | 43 |
sinine | 44 |
purpurne | 45 |
Cyan | 46 |
Light Gray | 47 |
Antud stringi tausta muutmine taandub samale reeglile nagu fondi värvi muutmisel – kood ise muudab käitumist:
#!/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"
Märge: Rusikareegel – saate fondi värvid taustavärvideks tõlkida, lisades 10. 30
on must kirjavärv, 40
on must taustavärv.
Muutke väljundi värvi tput abil
ANSI-koodide alternatiiviks on kasutada tput
käsk:
$ tput setaf color_code
setf
võimaldab 8 värvi, samas setaf
võimaldab kasutada 256 värvi, nii et olenevalt kasutatavast käsust saate nende vahel liikuda 0..7
ja 0..255
värvikoodidena. Mõlemad käsud pühendavad 0..7
samadele värvikoodidele, samas kui koos setaf
, 8..15
on kõrge intensiivsusega värvid ja 16..231
on esimese 8 erineva tooniga ja 232..255
on halltoonid:
krediit: Wikipedia
Lõpuks tput
võimaldab ka muude käskudega muuta taustavärvi, lisada paksu kirja, alandada intensiivsust jne:
Tekstistiilid | Käsud |
Esiplaani värv | setaf |
Tausta värv | settab |
Ei mingit stiili | sgv0 |
Rasvane tekst | julge |
Madala intensiivsusega tekst | Sun. |
Tekst joon alla | smul |
Vilkuv tekst | vilkuma |
Vastupidine tekst | rev |
Loome teise skripti, mis kasutab tput
väljundi värvi muutmiseks 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!"
See skript prindib terminalis järgmise väljundi:
Käsk tput pakub lihtsat viisi mis tahes värvi printimiseks lihtsa värvikoodi kaudu. Loome nüüd skripti, mis suudab printida kõik käsu tput jaoks saadaolevad värvikoodid:
#!/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
See prindib 0 kuni 255 värvi ja nende koodid:
Järeldus
Selles lühikeses juhendis vaatasime, kuidas saate värvi muuta echo
väljund Linuxis – kasutades ANSI Escape Sequences ja tput
käsk
Samuti oleme uurinud, kuidas saate Bashi muutujate, taustavärvide ja stiiliteksti abil protsessi vähem üksikasjalikuks muuta.