Kako se spremenljivka vzdržuje v Linuxu?

Lupina ukazne vrstice operacijskega sistema Linux je močno orodje, ki je v svojem bistvu tolmač programskega jezika. Kot pri vsakem drugem programskem jeziku vam ukazna lupina omogoča uporabo spremenljivk za shranjevanje, pridobivanje in upravljanje podatkov.

Nastavitev in pridobivanje spremenljivih vrednosti

V ukazni lupini bash, ki je privzeta lupina v Linuxu, lahko nastavite spremenljivko s splošno sintakso NAME = VALUE . Na primer, v ukaznem pozivu lahko vnesete:

 x = 5 

Spremenljivka z imenom x bo nastavljena na numerično vrednost 5 . Imena spremenljivk so lahko velika ali majhna, ali mešanica obeh in so občutljiva na velike in male črke. Pri nastavljanju spremenljivke med imenom spremenljivke, znakom enakovrednosti in vrednostjo ne sme biti presledkov.

Ni potrebno predhodno deklarirati spremenljivke ali določiti njenega podatkovnega tipa. Bash določi vrsto spremenljivke glede na njeno vrednost.

Naša spremenljivka lahko na primer vsebuje tudi niz:

 x = Pozdravljeni 

Za preprost niz ni treba zaprti niza v narekovajih, če pa niz vsebuje presledke, ga morate obkrožiti z dvojnimi narekovaji:

 x = "Pozdravljeni, svet!" 

Če želite pridobiti vrednost spremenljivke, jo predponite z znakom za dolar. Če želite na primer pogledati vrednost x z ukazom echo, boste zagnali:

 echo $ x 

Kateri rezultati:

 Pozdravljen, svet! 

Tukaj se zgodi, da lupina prevzame vrednost vaše spremenljivke in jo vstavi v vaš ukaz. Na spremenljivko se lahko sklicujete kjerkoli v vašem ukazu, tudi znotraj dvojnega niza:

 echo "$ x $ x Ali me lahko kdo sliši? Rekel sem, $ x" 
 Pozdravljen, svet! Pozdravljen, svet! Ali me lahko kdo sliši? Rekel sem, Zdravo, Svet! 

Nasvet: Spremenljivke se interpretirajo samo znotraj niza, če uporabljate dvojne narekovaje. Če uporabljate enojne narekovaje, bo ime spremenljivke interpretirano dobesedno, brez interpretacije:

 echo '$ x $ x Ali me lahko kdo sliši? Rekel sem, $ x ' 
 $ x $ x Ali me lahko kdo sliši? Rekel sem, $ x 

Nastavitev vrednosti spremenljivke kot izhodnega ukaza

Za nastavitev vrednosti vaše spremenljivke kot izhoda določenega ukaza uporabite obrazec:

 NAME = $ (COMMAND) 

Na primer, če je vaše uporabniško ime "steven", bo ukaz whoami vrnil vrednost steven . To lahko nastavite na spremenljivko:

 myname = $ (whoami) 
 echo $ myname 
 steven 

To lahko storite za kateri koli ukaz. Če ukaz vzame argumente, ukaza ni treba zaprti v narekovajih. Vse v oklepajih se bo izvajalo kot ukaz:

 x = "Pozdravljeni, svet!" 
 x = $ (echo $ x $ x $ x) 
 echo $ x 
 Pozdravljeni, Svet! Pozdravljeni, Svet! 

Uporaba spremenljivk v preprostem skriptu

Poglejmo, kako lahko uporabimo spremenljivko v preprostem varnostnem skriptu. Recimo, da želite varnostno kopirati vse v dokumentih imenika v domačem imeniku. Skript bo arhiviral vse v tem imeniku in vse imenike, ki jih vsebuje, v tar arhiv, katerega ime vsebuje trenutni datum. Ohranimo varnostne kopije v imeniku, imenovanem varnostne kopije v domačem imeniku (predpostavljamo, da ta imenik že obstaja. Če ne, lahko zaženete mkdir ~ / backups ).

Odprite urejevalnik besedila in ga vstavite v novo datoteko:

 #! / bin / bash MYFILENAME = ~ / backups / documents-backup - $ (datum +% Y-% m-% d) .tar.gz 

tar -czf $ OUTPUTFILE ~ / dokumenti

Poglejmo vsako vrstico tega skripta. Prva vrstica, #! / Bin / bash, razglasi skript kot izvedljivo datoteko in podaja, da naj se zažene z / bin / bash, ki je izvršljiva ukazna lupina bash. Opomba: Datoteka ne bo izvedljiva, dokler datoteke ne bomo kasneje spreminjali, vendar je ta vrstica potrebna v vseh pravilnih bash skriptih.

Druga vrstica nastavi spremenljivko MYFILENAME, ki bo vsebovala ime arhiva, ki vsebuje našo varnostno kopijo. Prvi del imena datoteke je imenik varnostnih kopij, ~ / varnostne kopije .

Opomba: znak tilde ( ~ ) je posebno ime imenika, ki vedno predstavlja naš domači imenik.)

Nato imamo začetek imena datoteke, dokumente-varnostne kopije . Nato vstavimo trenutni datum z ukazom datum, simbolom plus in zaporedjem oblike datuma % Y-% m-% d . Na primer, če bi bil datum 23. februar 2015, bi se to vrnilo 2015-02-23 .

Nazadnje uporabimo razširitev .tar.gz, ki je ustrezna pripona imena datoteke za datoteko tar. Če smo skript zagnali 23. februarja 2015, bi bila vrednost MYFILENAME ~ / backups / documents-backup-2015-02-23.tar.gz . Če smo ga izvedli 7. maja 2015, bi bila vrednost ~ / backups / documents-backup-2015-05-07.tar.gz .

Tretja vrstica je ukaz, ki ustvarja arhiv. Uporabimo ukaz tar z možnostjo -czf, ki bo ustvaril ( c ) arhiv z zipom ( z ) z uporabo podanega imena datoteke ( f ). Nato podamo ime arhivske datoteke s sklicevanjem na spremenljivko, ki smo jo ustvarili v vrstici 2, OUTPUTFILE . Nazadnje bomo taru povedali, kaj želimo arhivirati: imenik ~ / dokumenti .

Če želite zagnati skript, shranite besedilno datoteko v svoj domači imenik (ali kjerkoli želite) in ji podajte ustrezno ime, na primer varnostno kopiranje-my-docs . Ni mu treba podaljšati razširitve imena datoteke. Zaprite urejevalnik besedila in naredite datoteko izvršljivo z ukazom chmod + x, na primer:

 chmod + x ~ / backup-my-docs 

Zdaj lahko zaženete skript. Če je na primer skript v delovnem imeniku, ga lahko zaženete z:

 ./backup-my-docs 

Če pa je v vašem domačem imeniku, ga lahko z ukazom zaženete iz katerega koli imenika:

 ~ / backup-my-docs