Fahmida Yesmini [4] varem avaldatud artikkel annab teile suurepärase sissejuhatuse Bashi muutujatesse. Siin astume edasi ja selgitame, kuidas deklareerida muutujaid Bashis nii, et saaksite neid kasutada oma Linuxi süsteemi teistes keskkondades, ja milliseid vastavaid kõrvaltoimeid peate arvestama.
Bashi lühikirjeldus
Bashi kest ilmus esmakordselt 1989. aastal ja seda on enamiku Linuxi distributsioonide puhul kasutatud vaikimisi sisselogimiskoorina. Brian Fox kirjutas Bashi GNU projekti UNIX-i kestana ja käsukeelena Bourne-i koore tasuta tarkvara asendajana. See on lühend Bourne jälle kest. Bash ühildub suures osas sh ja sisaldab Korni kesta kasulikke funktsioone ksh ja C-kest csh [6].
Kuigi GNU operatsioonisüsteem pakub muid kestasid, sealhulgas versiooni csh, Bash on vaikimisi interaktiivne kest. See on loodud kaasaskantavust silmas pidades ja töötab praegu peaaegu kõigis UNIX-i versioonides pluss muudes operatsioonisüsteemides [9].
Bashi muutujad lühidalt
Muutujad on programmeerimiskeelte olulised komponendid. Neile viidatakse ja nendega manipuleeritakse arvutiprogrammis. Lihtsamalt öeldes tähistavad muutujad nimega mälurakke. See on Bashis sama mis mis tahes programmeerimiskeeles. See võimaldab meil inimestena ja arvuti kasutajatena salvestada väärtused arvuti ajusse ja leida need muutuja määratud nime kaudu uuesti.
Mõiste muutuja tähistab kahe sõna ühendatud vormi, st.e., varieeruda + võimalik, mis tähendab, et selle väärtust saab muuta ja seda saab kasutada mitu korda. Vastupidiselt sellele nimetatakse muutujaid, mida ei saa muuta, konstantideks. [10]
Niikaua kui teie skripti jaoks on piisavalt mälu, saate muutujaid vabalt luua ja kasutada. Saate need lihtsalt määrata, määrates muutuja nime ja määrates seejärel selle väärtuse. Bashi muutuja nimi võib sisaldada tähti, numbreid ja alakriipe. Selle nime saab alustada ainult tähe ja alakriipsuga. Kehtivad muutujate nimed on suurus, tax5 ja _tax20, kuid mitte 5 reeglit.
Bashi muutuja väärtus võib sisaldada arvu, üksikut märki, tähemärgistringi või üksuste loendit (nn massiiv). Sellel pole nähtavat andmetüüpi ja muutuja sisemine andmetüüp selgitatakse välja (või tuletatakse) väärtuse määramisel automaatselt. Pealegi pole muutujat vaja deklareerida - väärtuse määramine selle viitele loob muutuja automaatselt. Allpool toodud Bashi skripti näide näitab seda stringi määramise ja numbrilise numbrite määramise korral.
#! / bin / bashwelcomeMessage = "Tere maailm!"
echo $ welcomeMessage
hind = 145
kaja $ hind
Bashi muutujate tavade nimetamine
Muutujate nimede õigekirja jaoks pole kindlaid reegleid, on ainult kokkulepped. Neid konventsioone kasutatakse:
- Väikesed nimed - muutujad, mis on skripti või funktsiooni kohalikud.
Pole tähtis, kas kirjutatud väiketäht / madu juhtum [8] või kaameli juhtum [7]. Ülaltoodud näites kasutatakse kaameli juhtumi stiili. - Suurte nimed - konstandid, keskkonnamuutujad, kestas sisseehitatud muutujad.
Pidage meeles, et need muutujad võivad juba teistes programmides olla kasutusel. Näiteks on $ PATH, $ LANG, $ PWD, $ PS4 ja $ SHELL.
Ülemaailmsete IT-ettevõtete jaoks on tavapärane töötada stiilijuhistega, et tagada ettevõttes ühine kodeerimisstiil. Lisateavet nende järgitavate konventsioonide kohta leiate IBM-i arendajatoimetusest ja Google'i stiilijuhendist [3].
Muutuv nähtavus
Vaikimisi on see, et muutuja on lokaalselt seotud struktuuri, funktsiooni, skripti või protsessiga ja sellele ei pääse juurde väljaspool seda. Allpool olev näide näitab seda muutuja $ sõnumi jaoks, mis kuulub skripti, ja $ welcome, mis kuulub funktsiooni outputWelcomeMessage ().
#!/ bin / bash# määrake skriptile muutuva sõnumi
sõnum = ”Tere, veel kord!”
outputWelcomeMessage ()
# määrake kohalik muutuja
tere tulemast = ”Tere!”
echo $ teretulnud
outputWelcomeMessage () # prindib Tere!
echo $ message # prints Tere, veel kord!
Veendumaks, et varem määratletud sama nimega muutuja on kohapeal seotud, kasutage märksõna kohalik, nagu on näidatud järgmiselt. Ilma märksõnata local seonduks reas 8 olev omistamine varem määratletud sama nimega globaalselt määratletud muutujaga.
#!/ bin / bash# määrab skriptile muutuva teate
sõnum = ”Tere, veel kord!”
outputWelcomeMessage ()
# määrab sama nimega kohaliku muutuja
Kohalik sõnum = ”Tere!”
echo $ sõnum
outputWelcomeMessage () # prindib Tere!
echo $ message # prints Tere, veel kord!
Muutuja ulatuse laiendamine
Sisemise muutuja teistele lapseprotsessidele nähtavaks tegemiseks on vaja täiendavat sammu. Seda sammu nimetatakse muutuja eksportimiseks. Bash pakub märksõna eksport, millele järgneb muutuja nimi. Allpool olev loetelu näitab seda muutuja backupPath puhul.
$ backupPath = ”/ opt / backup /”$ export backupPath
Ekspordikäsk on sisseehitatud kest, mida kasutatakse muutuja määratlemiseks sellisena, mille pärivad alamkoorid (algsest kudenud kestad). Eksporditavaid muutujaid saab lugeda ja kirjutada mitme protsessiga.
Teine võimalus on deklareerida muutuja algusest peale keskkonnamuutujana. Seda saate teha, kasutades märksõna deklareeri, millele järgneb suvand "-x" (lisateavet käsu deklareeri kohta vt [5]). Mõju on sarnane ekspordikäsklusega, mis võeti kasutusele varem.
$ declare -x BACKUPPATH = ”/ opt / backup /”Pärige teistelt seanssidelt
Programmi käivitamisel pärib see automaatselt keskkonnamuutujad vanemprotsessist. Näiteks kui $ HOME on vanemas seatud väärtusele / root, siis on lapse muutuja $ HOME samuti seatud väärtusele / root.
Edasised käsud
Muuhulgas on Linuxil kasulikud muutujatega seotud käsud ja suvandid. Kahte esimest nimetatakse env ja printenv. Nad loetlevad kõik keskkonnamuutujad.
Alloleval pildil on käsu env väljund terminalis, mida käitatakse X-seansil. See sisaldab muutujaid nagu $ XTERM (terminali tüüp), $ SHELL (programm, mida kutsutakse sisselogimisel ja mis näitab / bin / bash Bashi tõlgi jaoks), $ LS_COLORS (värvid, mida kasutatakse eri failide esiletõstmiseks) tüübid, kui helistate ls) ja $ DESKTOP_SESSION (praegune X töölaua keskkond).
Kolmas ja neljas on eksportkäskude - -p ja -n valikud. -p on printimiseks lühike ja kuvab lihtsalt kõik eksporditud muutujad aktiivses kestas, kasutades käsku deklaratsiooni.
$ eksport -pdeklareeri -x DESKTOP_SESSION = "xfce"
deklareeri -x DISPLAY = ": 0"
deklareerige -x GLADE_CATALOG_PATH = ":"
deklareerige -x GLADE_MODULE_PATH = ":"
deklareerige -x GLADE_PIXMAP_PATH = ":"
deklareeri -x KODU = "/ kodu / aus"
deklareeri -x LANG = "de_DE.UTF-8 "
Valikut -n kasutatakse keskkonnamuutuja tühistamiseks. Allpool olev loetelu näitab seda varem määratletud muutuja BACKUPPATH puhul.
$ eksport -n TAGAVARUJäreldus
Bash on väga nutikas, kuid mõnikord ka natuke keeruline keskkond. Muutujad kontrollivad, kuidas erinevad tööriistad omavahel suhtlevad. Muutujate eksportimine aitab protsesside vahel suhelda ja seda on igapäevaelus lihtne kasutada.
Autorite kohta
Jacqui Kabeta on keskkonnakaitsja, innukas teadlane, koolitaja ja mentor. Mitmes Aafrika riigis on ta töötanud IT-tööstuses ja vabaühenduste keskkonnas.
Frank Hofmann on IT-arendaja, koolitaja ja autor ning eelistab töötada Berliinist, Genfist ja Kaplinnast. Debiani paketihalduse raamatu kaasautor, mis on saadaval veebisaidilt dpmb.org
Lingid ja viited
- [1] Bashi programmeerimine, muutujad, https: // tldp.org / HOWTO / Bash-Prog-Intro-HOWTO-5.HTML
- [2] Linuxi professionaalne instituut LPIC-1, https: // www.lpi.org / meie-sertifikaadid / lpic-1-ülevaade
- [3] Google Shelli stiilijuhend, muutujate nimed, https: // google.github.io / styleguide / shellguide.html # s7-nimetamise-kokkulepped
- [4] Fahmida Yesmin: muutujate kasutamine Bashi programmeerimisel, https: // linuxhint.com / muutujad-bashi programmeerimine /
- [5] Bashi häkkerite wiki, https: // wiki.bash-häkkerid.org /
- [6] Bash, Vikipeedia, https: // et.vikipeedia.org / wiki / Bash_ (Unix_shell)
- [7] Camel Case, Wikipedia, https: // et.vikipeedia.org / wiki / Camel_case
- [8] Snake Case, Vikipeedia, https: // et.vikipeedia.org / wiki / Snake_case
- [9] Mis on Bash. https: // www.gnu.org / tarkvara / bash / manuaal / html_node / Mis-on-Bash_003f.HTML
- [10] Muutujate kasutamine Bashis https: // opensource.com / article / 19/8 / using-muutujad-bash
- Programmeerimise põhipunktide mõistmine https: // www.lineajakiri.com / sisu / mõistmine-bash-elemendid-programmeerimine
- Bashi muutujad https: // www.javatpoint.com / bash-muutujad