Fahmida Yesmin korábban megjelent cikke [4] csodálatos bevezetést nyújt a Bash változókba. Itt tovább lépünk, és elmagyarázzuk, hogyan deklarálhatjuk a változókat a Bash-ban oly módon, hogy azokat felhasználhassuk a Linux-rendszer más környezeteiben, és mely megfelelő mellékhatásokat kell figyelembe venni.
Bash rövid leírása
A Bash shell először 1989-ben jelent meg, és a legtöbb Linux disztribúció alapértelmezett bejelentkezési héjaként használták. Brian Fox a Bash-t UNIX héjként és parancsnyelvként írta a GNU Project számára, mint a Bourne shell ingyenes szoftvercseréjét. Ez egy rövidítés Bourne Again Shell. Bash nagyrészt kompatibilis a következőkkel: SH és a Korn héj hasznos funkcióit tartalmazza ksh és a C héj csh [6].
Míg a GNU operációs rendszer más héjakat is tartalmaz, beleértve a csh, A Bash az alapértelmezett interaktív shell. A hordozhatóságot szem előtt tartva tervezték, és jelenleg a UNIX szinte minden verzióján, valamint más operációs rendszereken fut [9].
Bash változók dióhéjban
A változók a programozási nyelvek alapvető elemei. Számítógépes programban hivatkoznak rájuk és manipulálják őket. Egyszerűen fogalmazva, a változók az elnevezett memória cellákat képviselik. Ez ugyanaz a Bash-ban, mint bármely programozási nyelvben. Ez lehetővé teszi számunkra, hogy emberekként és a számítógép használóként értékeket tároljunk a számítógép „agyában”, és újra megtaláljuk őket a változó hozzárendelt nevén keresztül.
A változó kifejezés két szó együttes alakjára utal, azaz.e., változhat + képes, ami azt jelenti, hogy az értéke megváltoztatható, és többször is használható. Ezzel ellentétben azokat a változókat, amelyeket nem lehet megváltoztatni, konstansoknak nevezzük. [10]
Mindaddig, amíg elegendő memória áll rendelkezésre a szkripthez, szabadon létrehozhat és használhat változókat. Egyszerűen beállíthatja őket úgy, hogy meghatároz egy változó nevet, majd hozzárendeli annak értékét. A Bash változónevében betűk, számjegyek és aláhúzások szerepelhetnek. A neve csak betűvel és aláhúzással kezdődhet. Érvényes változónevek: size, tax5 és _tax20, de nem 5 szabályok.
A Bash változó értéke tartalmazhat számot, egyetlen karaktert, karakterláncot vagy elemek listáját (tömbnek hívva). Nincs látható adattípusa, és a változó belső adattípusa automatikusan kitalálódik (vagy levezetésre kerül) egy érték hozzárendelésekor. Ezenkívül nincs szükség a változó deklarálására - ha értéket rendelünk a referenciához, akkor a változó automatikusan létrejön. Az alábbi Bash szkript ezt példázza egy karakterlánc-hozzárendeléshez és egy numerikus szám-hozzárendeléshez.
#! / bin / bashwelcomeMessage = "Helló világ!"
echo $ welcomeMessage
ár = 145
visszhang $ ár
A Bash-változók konvencióinak elnevezése
A változók nevének helyesírására nincsenek rögzített szabályok, csak konvenciók. Ezeket a konvenciókat használják:
- Kisbetűs nevek - egy szkript vagy függvény lokális változói.
Nem számít, hogy tönkölybetűs kis- / kígyótok [8], vagy teve-eset-stílus [7]. A fenti példa teve tok stílusát használja. - Nagybetűs nevek - konstansok, környezeti változók, shellbe épített változók.
Ne feledje, hogy ezeket a változókat esetleg már más programok is használják. Példák: $ PATH, $ LANG, $ PWD, $ PS4 és $ SHELL.
A globális informatikai vállalatok számára általában stílusismertetőkkel kell dolgozni, hogy biztosítsák a vállalat közös kódolási stílusát. Az általuk követett konvenciókkal kapcsolatos további információkért lásd az IBM fejlesztői szerkesztőségét és a Google stílus útmutatóját [3].
Változó láthatóság
Az alapértelmezett eset az, hogy egy változó lokálisan kapcsolódik egy struktúrához, függvényhez, szkripthez vagy folyamathoz, és nem érhető el rajta kívülről. Az alábbi példa ezt mutatja a szkripthez tartozó $ változó és a outputWelcomeMessage () függvényhez tartozó $ welcome változó esetén.
#!/ bin / bash# definiáljon változó üzenetet a szkripthez
message = ”Hello, még egyszer!”
outputWelcomeMessage ()
# definiál egy helyi változót
welcome = ”Hello!”
echo $ welcome
outputWelcomeMessage () # kinyomtatja Hello!
echo $ message # nyomtat Hello, még egyszer!
Annak érdekében, hogy egy korábban definiált, azonos nevű változó helyileg legyen kötve, használja a következő kulcsszót: local. A local kulcsszó nélkül a 8. sorban lévő hozzárendelés a korábban definiált azonos nevű, globálisan definiált változóra vonatkozna.
#!/ bin / bash# definiáljon változó üzenetet a szkripthez
message = ”Hello, még egyszer!”
outputWelcomeMessage ()
# definiál egy azonos nevű helyi változót
Helyi üzenet = ”Hello!”
echo $ üzenet
outputWelcomeMessage () # kinyomtatja Hello!
echo $ message # nyomtat Hello, még egyszer!
A változó hatókörének kiterjesztése
Ahhoz, hogy egy belső változó látható legyen a többi gyermek számára, további lépésre van szükség. Ezt a lépést változó exportálásának nevezzük. A Bash az export kulcsszó és a változó neve használatát kínálja. Az alábbi felsorolás ezt bizonyítja a változó backupPath esetében.
$ backupPath = ”/ opt / backup /”$ export backupPath
Az export parancs egy beépített shell, amelyet a változó definiálására használnak, amelyet az alhéjak (az eredetiből keletkezett héjak) örököl. Az exportált változókat egynél több folyamat olvashatja és írhatja.
A második lehetőség az, hogy a változót kezdettől fogva környezeti változóvá nyilvánítjuk. Ezt megteheti a deklarálás kulcsszóval, majd az „-x” opcióval (a deklarálás paranccsal kapcsolatos további információkért lásd [5]). A hatás hasonló a korábban bevezetett export parancshoz.
$ declare -x BACKUPPATH = ”/ opt / backup /”Örököljön más munkamenetekből
Amikor egy programot futtat, az automatikusan örökli környezeti változóit a szülői folyamatból. Például, ha a $ HOME értéke / root a szülőben, akkor a gyermek $ HOME változója szintén / root lesz.
További parancsok
Többek között a Linux hasznos parancsokkal és opciókkal rendelkezik, amelyek a változókhoz kapcsolódnak. Az első kettőt env-nek és printenv-nek hívják. Felsorolják az összes környezeti változót.
Az alábbi kép az env parancs kimenetét mutatja az X munkamenetben futtatott terminálon. Tartalmaz olyan változókat, mint $ XTERM (terminál típusa), $ SHELL (a bejelentkezéskor meghívott program, és a / bin / bash-t mutatja a Bash-tolmács elérési útjához), $ LS_COLORS (a különböző fájlok kiemeléséhez használt színek) típusok az ls hívásakor), és $ DESKTOP_SESSION (a jelenlegi X asztali környezet).
A harmadik és a negyedik az export parancs - -p és -n opciói. -A p a nyomtatás rövidítése, és csak a deklarálás paranccsal jeleníti meg az összes exportált változót az aktuális héjban.
$ export -pdeklarálja -x DESKTOP_SESSION = "xfce"
deklarálja -x DISPLAY = ": 0"
deklarálja -x GLADE_CATALOG_PATH = ":"
deklarálja -x GLADE_MODULE_PATH = ":"
deklarálja -x GLADE_PIXMAP_PATH = ":"
deklarálja -x HOME = "/ home / frank"
deklarálja -x LANG = "de_DE.UTF-8 "
Az -n opció egy környezeti változó törlésére szolgál. Az alábbi felsorolás ezt demonstrálja a korábban definiált BACKUPPATH változó esetében.
$ export -n BACKUPPATHKövetkeztetés
A Bash nagyon okos, de néha kissé összetett környezet is. A változók vezérlik a különböző eszközök kölcsönhatását. A változók exportálása segíti a folyamatok közötti kommunikációt, és könnyen használható a mindennapi életben.
A szerzőkről
Jacqui Kabeta környezetvédő, lelkes kutató, oktató és mentor. Több afrikai országban dolgozott az informatikai iparban és a civil szervezetek környezetében.
Frank Hofmann informatikai fejlesztő, oktató és szerző, és inkább Berlinből, Genfből és Fokvárosból dolgozik. A Debian Csomagkezelő Könyv társszerzője a dpmb oldalon érhető el.org
Linkek és hivatkozások
- [1] Bash programozás, Változók, https: // tldp.org / HOGYAN / Bash-Prog-Intro-HOGYAN-5.html
- [2] Linux Professional Institute LPIC-1, https: // www.lpi.org / mi-tanúsítványaink / lpic-1-áttekintés
- [3] Google Shell stílus útmutató, Változónevek, https: // google.github.io / styleguide / shellguide.html # s7-naming-konvenciók
- [4] Fahmida Yesmin: A változók használata a Bash programozásban, https: // linuxhint.com / variables-bash-programozás /
- [5] A Bash Hackers Wiki, https: // wiki.bash-hackerek.org /
- [6] The Bash, Wikipedia, https: // hu.wikipédia.org / wiki / Bash_ (Unix_shell)
- [7] Camel Case, Wikipedia, https: // en.wikipédia.org / wiki / Camel_case
- [8] Snake Case, Wikipedia, https: // en.wikipédia.org / wiki / Snake_case
- [9] Mi a Bash. https: // www.gnú.org / software / bash / manual / html_node / What-is-Bash_003f.html
- [10] Változók használata a Bash https: // opensource fájlban.com / article / 19/8 / using-variables-bash
- A programozás alapjainak megértése https: // www.linuxjournal.com / tartalom / megértés-bash-elemek-programozás
- Bash-változók https: // www.javatpoint.com / bash-változók