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 / bashwelcomeMessage = "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:
- Mala imena - spremenljivke, ki so lokalne skriptu ali funkciji.
Ne glede na to, ali je črka napisana z malimi črkami / kačami [8] ali s slogom omare [7]. Zgornji primer uporablja slog ohišja kamele. - Velika imena - konstante, spremenljivke okolja, vgrajene spremenljivke lupine.
Upoštevajte, da te spremenljivke morda že uporabljajo drugi programi. Primeri so $ PATH, $ LANG, $ PWD, $ PS4 in $ SHELL.
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 -pizjavi -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 BACKUPPATHZaključ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
- [1] Programiranje basov, spremenljivke, https: // tldp.org / HOWTO / Bash-Prog-Intro-HOWTO-5.html
- [2] Linux Professional Institute LPIC-1, https: // www.lpi.org / our-certifications / lpic-1-overview
- [3] Googlov vodnik po slogu lupine, Imena spremenljivk, https: // google.github.io / styleguide / shellguide.html # s7-poimenovanje-konvencije
- [4] Fahmida Yesmin: Kako uporabljati spremenljivke v programiranju Bash, https: // linuxhint.com / spremenljivke-bash-programiranje /
- [5] Wiki o Bash Hackers, https: // wiki.bash-hekerji.org /
- [6] The Bash, Wikipedia, https: // en.wikipedia.org / wiki / Bash_ (lupina Unix)
- [7] Primer Camel, Wikipedia, https: // en.wikipedia.org / wiki / Camel_case
- [8] Primer kače, Wikipedia, https: // en.wikipedia.org / wiki / Snake_case
- [9] Kaj je Bash. https: // www.gnu.org / software / bash / manual / html_node / What-is-Bash_003f.html
- [10] Uporaba spremenljivk v Bash https: // opensource.com / article / 19/8 / using-variables-bash
- Razumevanje elementov basha programiranja https: // www.linuxjournal.com / content / razumevanje-bash-elementi-programiranje
- Bash spremenljivke https: // www.javatpoint.com / bash-spremenljivke