BASH programiranje

Izvoz spremenljivk Bash

Izvoz spremenljivk Bash
Razumevanje spremenljivk v lupini Bash je bistvenega pomena pri profesionalnem delu z Linuxom. To je ena ključnih zahtev za programiranje, pa tudi za doseganje stopnje certificiranja LPIC (Professional Professional Institute - LPIC) [2].

Prej objavljeni članek Fahmida Yesmin [4] vam ponuja čudovit uvod v spremenljivke Bash. Tu stopimo še naprej in razložimo, kako spremenljivke v Bashu razglasiti tako, da jih lahko uporabite v drugih okoljih v sistemu Linux in katere ustrezne neželene učinke morate upoštevati.

Kratek opis Basha

Lupina Bash je bila prvič izdana leta 1989 in je bila uporabljena kot privzeta prijavna lupina za večino distribucij Linuxa. Brian Fox je napisal Bash kot lupino UNIX in ukazni jezik za projekt GNU kot brezplačno programsko zamenjavo za lupino Bourne. To je kratica za Bourne Again Shell. Bash je v veliki meri združljiv z sh in vključuje uporabne funkcije iz lupine Korn ksh in lupino C csh [6].

Medtem ko operacijski sistem GNU ponuja druge lupine, vključno z različico csh, Bash je privzeta interaktivna lupina. Zasnovan je z mislijo na prenosljivost in trenutno deluje na skoraj vseh različicah UNIX in drugih operacijskih sistemih [9].

Bash spremenljivke na kratko

Spremenljivke so bistveni sestavni deli programskih jezikov. Na njih se sklicuje in z njimi manipulira v računalniškem programu. Preprosto povedano, spremenljivke predstavljajo imenovane pomnilniške celice. V Bashu je to enako kot v katerem koli programskem jeziku. Tako lahko kot ljudje in uporabniki računalnika shranimo vrednosti v "možgane" računalnika in jih znova poiščemo prek dodeljenega imena spremenljivke.

Izraz spremenljivka se nanaša na kombinirano obliko dveh besed, tj.e., variable +able, kar pomeni, da je njegovo vrednost mogoče spremeniti in jo lahko uporabimo večkrat. V nasprotju s tem se spremenljivke, ki jih ni mogoče spremeniti, imenujejo konstante. [10]

Dokler je za vaš skript na voljo dovolj pomnilnika, lahko prosto ustvarjate in uporabljate spremenljivke. Lahko jih preprosto nastavite tako, da definirate ime spremenljivke in nato dodelite njeno vrednost. Ime spremenljivke v Bashu lahko vključuje črke, števke in podčrtaje. Njegovo ime se lahko začne samo s črko in podčrtajem. Veljavna imena spremenljivk so velikost, davek5 in _taksa20, ne pa tudi pravila 5.

Vrednost spremenljivke v Bashu lahko vsebuje številko, en sam znak, niz znakov ali seznam elementov (imenovan matrika). Nima vidnega podatkovnega tipa, notranji podatkovni tip spremenljivke pa bo samodejno ugotovljen (ali izpeljan) po dodelitvi vrednosti. Poleg tega ni treba prijaviti spremenljivke - dodelitev vrednosti sklicu bo spremenljivko ustvarila samodejno. Spodnji primer skripta Bash to dokazuje za dodelitev niza in dodelitev številčne številke.

#! / bin / bash
welcomeMessage = "Pozdravljeni, svet!"
echo $ welcomeMessage
cena = 145
echo $ price

Konvencije o poimenovanju spremenljivk Bash

Za črkovanje imen spremenljivk ni določenih pravil, obstajajo samo konvencije. Uporabljajo se te konvencije:

Za svetovna informacijska podjetja je običajno, da sodelujejo s stilskimi vodiči, da bi zagotovili skupen slog kodiranja med podjetji. Za več informacij o pravilih, ki jih upoštevajo, glejte Uvodnik za razvijalce za IBM in Googlov vodnik po slogu [3].

Spremenljiva vidnost

Privzeti primer je, da je spremenljivka lokalno vezana na strukturo, funkcijo, skript ali postopek in do nje ni mogoče dostopati zunaj nje. Spodnji primer prikazuje to za spremenljivko $ message, ki pripada skriptu, in $ welcome, ki pripada funkciji outputWelcomeMessage ().

#!/ bin / bash
# definirajte sporočilo spremenljivke skriptu
message = ”Pozdravljeni, še enkrat!"
outputWelcomeMessage ()
# definirajte lokalno spremenljivko
dobrodošli = ”Pozdravljeni!"
echo $ dobrodošli

outputWelcomeMessage () # natisne Pozdravljeni!
echo $ message # prints Pozdravljeni, še enkrat!

Če želite zagotoviti, da je predhodno definirana spremenljivka z istim imenom lokalno vezana, uporabite ključno besedo local, kot je prikazano v nadaljevanju. Brez ključne besede local bi se dodelitev v vrstici 8 nanašala na globalno definirano spremenljivko z enakim imenom, opredeljenim prej.

#!/ bin / bash
# definirajte sporočilo spremenljivke skriptu
message = ”Pozdravljeni, še enkrat!"
outputWelcomeMessage ()
# definirajte lokalno spremenljivko z istim imenom
Lokalno sporočilo = ”Pozdravljeni!"
echo $ message

outputWelcomeMessage () # natisne Pozdravljeni!
echo $ message # prints Pozdravljeni, še enkrat!

Razširitev obsega spremenljivke

Da bi bila notranja spremenljivka vidna drugim podrejenim procesom, je potreben dodaten korak. Ta korak se imenuje izvoz spremenljivke. Bash ponuja uporabo ključne besede izvoz, ki ji sledi ime spremenljivke. Spodnji seznam to dokazuje za spremenljivko backupPath.

$ backupPath = ”/ opt / backup /”
$ export backupPath

Ukaz za izvoz je vgrajena lupina, ki se uporablja za definiranje spremenljivke kot tiste, ki podlupine (lupine, ustvarjene iz izvirnika) podedujejo. Spremenljivke, ki se izvozijo, lahko nato prebere in zapiše več kot en postopek.

Druga možnost je, da spremenljivko že na začetku deklarirate kot spremenljivko okolja. To lahko storite z uporabo ključne besede prijavi, ki ji sledi možnost »-x« (glejte [5] za več informacij o ukazu izjave). Učinek je podoben ukazu za izvoz, ki je bil uveden prej.

$ declare -x BACKUPPATH = ”/ opt / backup /”

Podedujte iz drugih sej

Ko zaženete program, samodejno podeduje svoje spremenljivke okolja iz nadrejenega procesa. Na primer, če je $ HOME v nadrejeni nastavljen na / root, potem je tudi otrokova spremenljivka $ HOME nastavljena na / root.

Nadaljnji ukazi

Med drugim ima Linux uporabne ukaze in možnosti, ki se nanašajo na spremenljivke. Prva dva se imenujeta env in printenv. Navajajo vse spremenljivke okolja.

Spodnja slika prikazuje izhod ukaza env v terminalu, ki se zažene v seji X. Vsebuje spremenljivke, kot so $ XTERM (vrsta terminala), $ SHELL (program, ki se pokliče ob prijavi, in prikaže / bin / bash za pot do tolmača Bash), $ LS_COLORS (barve, ki se uporabljajo za označevanje različnih datotek vrste pri klicu ls) in $ DESKTOP_SESSION (trenutno namizno okolje X).

Tretja in četrta sta možnosti ukaza za izvoz - -p in -n. -p je okrajšava za print in s prikazanim ukazom samo prikaže vse izvožene spremenljivke v trenutni lupini.

$ izvoz -p
izjavi -x DESKTOP_SESSION = "xfce"
izjavi -x DISPLAY = ": 0"
izjavi -x GLADE_CATALOG_PATH = ":"
izjavi -x GLADE_MODULE_PATH = ":"
izjavi -x GLADE_PIXMAP_PATH = ":"
prijavi -x HOME = "/ home / frank"
izjavi -x LANG = "de_DE.UTF-8 "

Možnost -n se uporablja za razveljavitev spremenljivke okolja. Spodnji seznam to dokazuje za prej definirano spremenljivko BACKUPPATH.

$ export -n BACKUPPATH

Zaključek

Bash je zelo pametno, včasih pa tudi nekoliko zapleteno okolje. Spremenljivke nadzorujejo medsebojno delovanje različnih orodij. Izvoz spremenljivk pomaga pri komunikaciji med procesi in je enostaven za uporabo v vsakdanjem življenju.

O avtorjih

Jacqui Kabeta je okoljevarstvenica, navdušena raziskovalka, trenerka in mentorica. V več afriških državah je delala v IT industriji in okoljih nevladnih organizacij.

Frank Hofmann je razvijalec informacijskih tehnologij, trener in avtor ter raje dela iz Berlina, Ženeve in Cape Towna. Soavtor knjige za upravljanje paketov Debian, ki je na voljo pri dpmb.org

Povezave in reference

Uporabna orodja za igralce Linux
Če radi igrate igre na Linuxu, obstaja verjetnost, da ste za izboljšanje igralne izkušnje uporabljali aplikacije in pripomočke, kot so Wine, Lutris in...
HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...