Anksčiau paskelbtame Fahmida Yesmin straipsnyje [4] pateikiama nuostabi įžanga į Basho kintamuosius. Čia mes žengiame toliau ir paaiškiname, kaip deklaruoti kintamuosius „Bash“ taip, kad galėtumėte juos naudoti kitose „Linux“ sistemos aplinkose ir į kokius atitinkamus šalutinius poveikius turite atsižvelgti.
Trumpas Basho aprašymas
„Bash“ apvalkalas pirmą kartą buvo išleistas 1989 m. Ir buvo naudojamas kaip numatytasis prisijungimo apvalkalas daugumai „Linux“ paskirstymų. Brianas Foxas parašė „Bash“ kaip UNIX apvalkalą ir komandų kalbą „GNU Project“ kaip nemokamą „Bourne“ apvalkalo programinės įrangos pakaitalą. Tai yra santrumpa „Bourne Again Shell“. Bashas iš esmės suderinamas su sh ir apima naudingas „Korn“ apvalkalo savybes ksh ir C apvalkalas csh [6].
Nors GNU operacinė sistema teikia kitus apvalkalus, įskaitant csh, „Bash“ yra numatytasis interaktyvus apvalkalas. Jis sukurtas atsižvelgiant į perkeliamumą ir šiuo metu veikia beveik visose UNIX versijose bei kitose operacinėse sistemose [9].
„Bash“ kintamieji trumpai
Kintamieji yra esminiai programavimo kalbų komponentai. Jais remiamasi ir jais manipuliuojama kompiuterinėje programoje. Paprasčiau tariant, kintamieji reiškia įvardytas atminties ląsteles. Tai yra tas pats „Bash“, kaip ir bet kurioje programavimo kalboje. Tai leidžia mums, žmonėms ir kompiuterio vartotojams, išsaugoti reikšmes kompiuterio „smegenyse“ ir vėl jas surasti per priskirtą kintamojo pavadinimą.
Terminas kintamasis reiškia sujungtą dviejų žodžių formą, t.e., „vari + pajėgi“, o tai reiškia, kad jo vertę galima pakeisti ir ją galima naudoti kelis kartus. Priešingai, kintamieji, kurių negalima pakeisti, vadinami konstantomis. [10]
Jei jūsų scenarijui yra pakankamai atminties, galite laisvai kurti ir naudoti kintamuosius. Galite juos paprasčiausiai nustatyti apibrėždami kintamojo pavadinimą ir paskirdami jo vertę. „Bash“ kintamojo vardas gali apimti raides, skaitmenis ir pabraukimus. Jo pavadinimą galima pradėti tik raide ir pabraukimu. Tinkami kintamųjų pavadinimai yra dydis, tax5 ir _tax20, bet ne 5 taisyklės.
Kintamojoje reikšmėje „Bash“ gali būti skaičius, vienas simbolis, simbolių eilutė arba elementų sąrašas (vadinamas masyvu). Jis neturi matomo duomenų tipo, o kintamojo vidinis duomenų tipas bus automatiškai suprastas (arba išvestas) priskyrus vertę. Be to, nereikia deklaruoti kintamojo - priskyrus vertę jo nuorodai, kintamasis bus sukurtas automatiškai. Žemiau pateiktas „Bash“ scenarijaus pavyzdys tai parodo eilutės priskyrimui ir skaitiniam numerio priskyrimui.
#! / bin / bashwelcomeMessage = "Sveikas pasauli!"
echo $ welcomeMessage
kaina = 145
echo $ kaina
„Bash“ kintamųjų konvencijų pavadinimas
Nėra fiksuotų kintamųjų pavadinimų rašybos taisyklių, yra tik sutartinės. Naudojamos šios sutartys:
- Mažosios raidės - kintamieji, kurie yra scenarijaus ar funkcijos vietiniai.
Nesvarbu, ar rašoma mažosiomis raidėmis / gyvačių dėklais [8], ar kupranugarių atvejais [7]. Aukščiau pateiktame pavyzdyje naudojamas kupranugario atvejo stilius. - Didžiųjų raidžių pavadinimai - konstantos, aplinkos kintamieji, įmontuoti apvalkalo kintamieji.
Atminkite, kad šiuos kintamuosius jau gali naudoti kitos programos. Pavyzdžiai: $ PATH, $ LANG, $ PWD, $ PS4 ir $ SHELL.
Pasaulinėms IT įmonėms įprasta dirbti su stiliaus vadovais, siekiant užtikrinti bendrą įmonės kodavimo stilių. Norėdami gauti daugiau informacijos apie jų taikomus susitarimus, žr. „IBM“ kūrėjų redakciją ir „Google“ stiliaus vadovą [3].
Kintamas matomumas
Numatytasis atvejis yra tai, kad kintamasis yra lokaliai susietas su struktūra, funkcija, scenarijumi ar procesu ir negali būti pasiekiamas iš jo ribų. Žemiau pateiktame pavyzdyje tai parodyta kintamajam $ pranešimui, kuris priklauso scenarijui, ir $ welcome, kuris priklauso funkcijai outputWelcomeMessage ().
#!/ bin / bash# apibrėžti kintamą pranešimą scenarijui
žinutė = ”Sveiki, dar kartą!“
outputWelcomeMessage ()
# apibrėžti vietinį kintamąjį
sveiki = ”Sveiki!“
echo $ welcome
outputWelcomeMessage () # spausdina Sveiki!
echo $ message # prints Sveiki, dar kartą!
Norėdami įsitikinti, kad anksčiau apibrėžtas kintamasis tuo pačiu pavadinimu yra susietas su lokaliu, naudokite raktinį žodį local, kaip parodyta toliau. Be raktinio žodžio „local“ priskyrimas 8 eilutėje būtų susijęs su visuotinai apibrėžtu kintamuoju tuo pačiu pavadinimu, apibrėžtu anksčiau.
#!/ bin / bash# apibrėžti kintamą pranešimą scenarijui
žinutė = ”Sveiki, dar kartą!“
outputWelcomeMessage ()
# apibrėžti vietinį kintamąjį tuo pačiu pavadinimu
Vietinis pranešimas = ”Sveiki!“
echo $ žinutė
outputWelcomeMessage () # spausdina Sveiki!
echo $ message # prints Sveiki, dar kartą!
Kintamojo taikymo srities išplėtimas
Norint, kad vidinis kintamasis būtų matomas kitiems vaiko procesams, reikia atlikti papildomą žingsnį. Šis žingsnis vadinamas kintamojo eksportavimu. „Bash“ siūlo naudoti raktinį žodį eksportas ir kintamojo pavadinimas. Žemiau pateiktame sąraše tai parodo kintamasis „backupPath“.
$ backupPath = ”/ opt / backup /”$ export backupPath
Eksporto komanda yra įmontuota apvalkalas, naudojamas kintamajam apibrėžti kaip tą, kurį paveldi po apvalkalais (iš pirminio išgaunami apvalkalai). Tada eksportuotus kintamuosius galima skaityti ir rašyti daugiau nei vienu procesu.
Antrasis variantas yra skelbti kintamąjį kaip aplinkos kintamąjį nuo pat pradžių. Tai galite padaryti naudodami raktinį žodį deklaruoti ir parinktį „-x“ (daugiau informacijos apie komandą deklaruoti žr. [5]). Poveikis yra panašus į eksporto komandą, kuri buvo įvesta anksčiau.
$ declare -x BACKUPPATH = ”/ opt / backup /”Paveldėkite iš kitų sesijų
Vykdant programą ji automatiškai paveldi savo aplinkos kintamuosius iš pirminio proceso. Pvz., Jei $ HOME yra nustatytas kaip / root tėvuose, tada vaiko $ HOME kintamasis taip pat nustatomas kaip / root.
Kitos komandos
Be kitų, „Linux“ yra naudingų komandų ir parinkčių, susijusių su kintamaisiais. Pirmieji du yra vadinami env ir printenv. Jie išvardija visus aplinkos kintamuosius.
Žemiau pateiktame paveikslėlyje parodyta komandos env išvestis terminale, kuris vykdomas X sesijoje. Jame yra kintamieji, pvz., $ XTERM (terminalo tipas), $ SHELL (programa, kuri reikalinga prisijungus, ir rodo / bin / bash kelią į „Bash“ vertėją), $ LS_COLORS (spalvos, kurios naudojamos norint paryškinti skirtingą failą) tipai, kai skambinate ls), ir $ DESKTOP_SESSION (dabartinė „X“ darbalaukio aplinka).
Trečiasis ir ketvirtasis yra eksportavimo komandos parinktys - -p ir -n. -p yra trumpas spausdinti ir tiesiog parodo visus eksportuotus kintamuosius dabartiniame apvalkale, naudodamas komandą deklaruoti.
$ eksportas -ppaskelbti -x DESKTOP_SESSION = "xfce"
paskelbti -x DISPLAY = ": 0"
paskelbti -x GLADE_CATALOG_PATH = ":"
paskelbti -x GLADE_MODULE_PATH = ":"
paskelbti -x GLADE_PIXMAP_PATH = ":"
paskelbti -x NAMAI = "/ namai / atviras"
paskelbti -x LANG = "de_DE.UTF-8 "
Parinktis -n naudojama aplinkos kintamajam nustatyti. Toliau pateiktame sąraše tai parodo anksčiau apibrėžtas kintamasis BACKUPPATH.
$ eksportas -n ATSARGINĖ ATGALIšvada
Bashas yra labai sumani, bet kartais ir šiek tiek sudėtinga aplinka. Kintamieji valdo skirtingų įrankių sąveiką. Kintamųjų eksportavimas padeda bendrauti tarp procesų ir yra lengvai naudojamas kasdieniame gyvenime.
Apie autorius
Jacqui Kabeta yra aplinkosaugininkas, aistringas tyrinėtojas, treneris ir patarėjas. Keliose Afrikos šalyse ji dirbo IT pramonėje ir NVO aplinkoje.
Frankas Hofmannas yra IT kūrėjas, treneris, autorius ir nori dirbti iš Berlyno, Ženevos ir Keiptauno. „Debian“ paketų tvarkymo knygos, kurią galite rasti dpmb, bendraautorius.org
Nuorodos ir nuorodos
- [1] Basho programavimas, kintamieji, https: // tldp.org / HOWTO / Bash-Prog-Intro-HOWTO-5.HTML
- [2] „Linux Professional Institute LPIC-1“, https: // www.lpi.org / mus-sertifikatai / lpic-1-apžvalga
- [3] „Google Shell“ stiliaus vadovas, kintamųjų pavadinimai, https: // google.github.io / styleguide / shellguide.html # s7-naming-konvencijos
- [4] Fahmida Yesmin: Kaip naudoti kintamuosius programuojant „Bash“, https: // linuxhint.com / kintamieji-bash-programavimas /
- [5] „Bash Hackers Wiki“, https: // wiki.bash-hakeriai.org /
- [6] „The Bash“, Vikipedija, https: // lt.vikipedija.org / wiki / Bash_ („Unix_shell“)
- [7] „Camel Case“, „Wikipedia“, https: // lt.vikipedija.org / wiki / Camel_case
- [8] „Snake Case“, „Wikipedia“, https: // lt.vikipedija.org / wiki / Snake_case
- [9] Kas yra Bashas. https: // www.gnu.org / software / bash / manual / html_node / What-is-Bash_003f.HTML
- [10] Kintamųjų naudojimas „Bash https: // opensource“.com / article / 19/8 / using-kintamieji-bash
- Suprasti „Bash“ elementus programuojant https: // www.linuxjournal.com / content / supratimas-bash-elements-programavimas
- „Bash“ kintamieji https: // www.javatpoint.com / bash-kintamieji