Ultimele două articole despre BASH Shell, unde am discutat în detaliu despre variabile, au fost foarte apreciate în rândul cititorilor noștri. Noi ca. Echipa Tecmint sunteți foarte dornici să vă oferim subiecte recente, actualizate și relevante acoperite în detalii. Mai mult, încercăm întotdeauna să atingem perspective majore ale subiectelor corespunzătoare.
Iată ultimul articol despre Variabilele Linux în care vom vedea substituirea variabilelor și variabilele definite în Shell înainte de a închide acest subiect.
Bash efectuează înlocuirea variabilelor înainte ca comanda să fie într-adevăr executată. Linux Bash Shell caută toate semnele „$” înainte de a executa comanda și o înlocuiește cu valoarea variabilei. Procesul de înlocuire a variabilelor Bash se efectuează o singură dată. Ce se întâmplă dacă avem variabile imbricate?
Notă: Prin variabilă imbricată înțelegem, variabilă declarată în interiorul variabilei. Să vedem scenariul de mai sus în exemplul de mai jos.
Declarați o variabilă care este numai în citire și executabilă ca mai jos.
[e-mail protejat]: ~ $ declare -rx Linux_best_website = "www.tecmint.com"
Verificați valoarea variabilei stocate.
[e-mail protejat]: ~ $ printf "% s" "$ Linux_best_website" www.tecmint.com
Declarați acum o altă variabilă care este din nou numai în citire și executabilă.
[e-mail protejat]: ~ $ declare -rx Linux_website = "Linux_best_website"
Acum situația este, am definit două variabile.
„Linux_best_website”, a cărui valoare este „www.tecmint.com”
și, „Linux_website”, a cărui valoare este „Linux_best_website”
Care ar fi rezultatul, dacă executăm comanda de mai jos cu o singură linie?
[e-mail protejat]: ~ $ printf "% s" "$ Linux_website"
Mai întâi ar trebui să înlocuiască variabila „$ Linux_website‘, Cu valoare„Linux_best_website" și apoi "$ Linux_best_website”Este din nou o variabilă a cărei valoare este„www.tecmint.com”. Deci rezultatul final al executării comenzii de mai jos ar trebui să fie.
[e-mail protejat]: ~ $ printf "% s" "$ Linux_website" www.tecmint.com
Dar, din păcate, nu aceasta este situația, rezultatul pe care îl obținem este Linux_best_website.
Motiv? Da! Bash înlocuiește valoarea variabilei o singură dată. Cum rămâne cu scripturile și programele complexe în care trebuie să substituim variabilele frecvent, precum și să substituim variabila de mai multe ori?
Aici vine comanda „eval‘Care efectuează o lucrare suplimentară de substituție variabilă de mai multe ori într-un script. Iată un exemplu pentru a face ca întregul să funcționeze la fel de clar ca sticla.
Declarați o variabilă X, a cărei valoare este 10.
[e-mail protejat]: ~ / Desktop $ declare x = 10
Verificați valoarea variabilei X, tocmai am definit.
[e-mail protejat]: ~ / Desktop $ echo $ yx x10
Declarați o variabilă y, a cărei valoare este X.
[e-mail protejat]: ~ / Desktop $ declara y = x
Verificați valoarea variabilei y, tocmai am definit.
[e-mail protejat]: ~ / Desktop $ echo $ y x
Iată problema BASH substituție variabilă o singură dată, care nu efectuează o rundă suplimentară de substituție variabilă. Folosim „eval‘Comanda pentru a remedia acest lucru.
[e-mail protejat]: ~ / Desktop $ eval y = $ x
Acum verificați valoarea variabilei „y‘.
[e-mail protejat]: ~ / Desktop $ echo $ y 10
Ura! Problema a fost rezolvată și „eval‘Comanda a câștigat cursa :)
Ca să nu mai vorbim despre, 'eval„Comanda este foarte utilă în programele de script mari și este un instrument foarte util.
Ultima, dar nu cea mai mică parte a acestui post este variabilele predefinite BASH. Nu! Nu vă panicați văzând această listă. Nu trebuie să vă amintiți niciodată întreaga listă înainte de a începe să scrieți scripturi, cu excepția câtorva. Ca parte a procesului de învățare, prezentăm lista variabilelor predefinite BASH.
Nu. | VARIABILĂ BASH | REZULTAT |
1 | auto_resume | Procesați finalizarea comenzii pentru lucrările oprite. |
2 | BASH | CALEA cochiliei. |
3 | BASH_ENV | Afișează numele fișierului de profil |
4 | BASH_VERSION | Afișează versiunea Bash |
5 | BASH_VERSINFO | Afișează informații detaliate despre versiune. |
6 | BASH_VERSINFO [0] | Numărul versiunii principale (versiunea). |
7 | BASH_VERSINFO [1] | Numărul versiunii minore (versiunea). |
8 | BASH_VERSINFO [2] | Nivelul patch-urilor. |
9 | BASH_VERSINFO [3] | Versiunea de construire. |
10 | BASH_VERSINFO [4] | Starea lansării (de exemplu, beta1). |
11 | BASH_VERSINFO [5] | Valoarea MACHTYPE. |
12 | CDPATH | Lista directoarelor separate prin două puncte. |
13 | COLOANE | Numărul de caractere pe linie pe ieșirea standard. |
14 | EUID | ID de utilizator al utilizatorului curent. |
15 | FCEDIT | Editorul de text implicit pentru comanda fc. |
16 | FUNCNAME | Numele distracției |
17 | GRUPURI | Grupuri din care utilizatorul este membru. |
18 | HISTFILE | Fișierul care conține istoricul comenzilor. |
19 | ACASĂ | Numele directorului dvs. de acasă. |
20 | LINII | Numărul de linii orizontale pe ieșirea standard. |
21 | POȘTĂ | Numele unui fișier pentru verificarea e-mailurilor primite |
22 | OSTIP | Numele sistemului de operare. |
23 | OLDPWD | Directorul de lucru anterior |
24 | PWD | Directorul de lucru curent |
25 | ALEATORIU | Tipărește un număr aleatoriu |
26 | COAJĂ | Coaja preferată de utilizat |
27 | TIMEFORMAT | Formatul comenzii de timp. |
28 | UID | ID-ul utilizatorului curent |
Există o listă uriașă de variabile BASH predefinite. Am încercat să producem o listă a celor mai frecvent utilizate.
Asta este tot pentru acum. Voi fi din nou aici cu un alt articol interesant. Până atunci rămâneți la curent și conectați la TecMint. Nu uitați să ne furnizați feedback-ul dvs. valoros în secțiunea de comentarii de mai jos.