BASH-programmering

Eksport af Bash-variabler

Eksport af Bash-variabler
At forstå variabler i Bash-skallen er afgørende for at arbejde med Linux på en professionel måde. Det er et af nøglekravene til programmering samt opnåelse af Linux Professional Institute Certification (LPIC) niveau 1 [2].

Den tidligere offentliggjorte artikel af Fahmida Yesmin [4] giver dig en vidunderlig introduktion til Bash-variabler. Her går vi videre og forklarer, hvordan man deklarerer variabler i Bash på en sådan måde, at du kan bruge dem i andre miljøer på dit Linux-system, og hvilke tilsvarende bivirkninger du skal tage i betragtning.

En kort beskrivelse af Bash

Bash-shell blev først udgivet i 1989 og er blevet brugt som standard login-shell til de fleste Linux-distributioner. Brian Fox skrev Bash som en UNIX-skal og kommandosprog til GNU-projektet som en gratis softwareudskiftning til Bourne-skallen. Det er et akronym for Bourne Again Shell. Bash er stort set kompatibel med sh og indeholder nyttige funktioner fra Korn-skallen ksh og C-skallen csh [6].

Mens GNU-operativsystemet leverer andre skaller, inklusive en version af csh, Bash er standard interaktiv skal. Det er designet med tanke på bærbarhed og kører i øjeblikket næsten alle versioner af UNIX plus andre operativsystemer [9].

Bash-variabler i en nøddeskal

Variabler er vigtige komponenter i programmeringssprog. De refereres til og manipuleres i et computerprogram. Kort sagt, variabler repræsenterer navngivne hukommelsesceller. Dette er det samme i Bash som i ethvert programmeringssprog. Dette gør det muligt for os som mennesker og brugere af computeren at gemme værdier i "hjernen" på computeren og finde dem igen via det tildelte navn på variablen.

Udtrykket variabel henviser til en kombineret form af to ord, dvs.e., variere + stand, hvilket betyder, at dens værdi kan ændres, og den kan bruges flere gange. I modsætning hertil kaldes variabler, der ikke kan ændres, konstanter. [10]

Så længe der er nok hukommelse til rådighed til dit script, kan du frit oprette og bruge variabler. Du kan blot indstille dem ved at definere et variabelnavn og derefter tildele dets værdi. Et variabelt navn i Bash kan omfatte bogstaver, cifre og understregninger. Dets navn kan kun startes med et bogstav og en understregning. Gyldige variabelnavne er størrelse, tax5 og _tax20 men ikke 5 regler.

En variabel værdi i Bash kan indeholde et tal, et enkelt tegn, en streng med tegn eller en liste over elementer (kaldet array). Den har ikke en synlig datatype, og den interne datatype for variablen bliver automatisk regnet ud (eller afledt) ved tildeling af en værdi. Der er desuden ikke behov for at erklære variablen - ved at tildele en værdi til dens reference oprettes variablen automatisk. Eksemplet nedenfor viser Bash-scriptet for en strengtildeling og en numerisk nummeropgave.

#! / bin / bash
welcomeMessage = "Hej verden!"
ekko $ welcomeMessage
pris = 145
ekko $ pris

Navngivning af konventioner af bashvariabler

Der er ingen faste regler for stavningen af ​​navne på variabler, kun konventioner. Disse konventioner anvendes:

For globale it-virksomheder er det almindeligt at arbejde med stilguider for at sikre en fælles kodestil blandt virksomheden. Se Developer Editorial for IBM og Google Style Guide [3] for at få flere oplysninger om de konventioner, de følger.

Variabel synlighed

Standardsagen er, at en variabel er lokalt bundet til en struktur, funktion, script eller proces og ikke kan tilgås uden for den. Eksemplet nedenfor viser dette for den variable $ besked, der hører til scriptet, og $ welcome, der hører til funktionen outputWelcomeMessage ().

#!/ bin / bash
# definer en variabel besked til scriptet
message = ”Hej igen!”
outputWelcomeMessage ()
# definer en lokal variabel
velkommen = ”Hej!”
ekko $ velkommen

outputWelcomeMessage () # udskriver Hej!
echo $ message # udskriver Hej igen!

For at sikre, at en tidligere defineret variabel med samme navn er lokalt bundet, skal du bruge nøgleordet local som vist næste. Uden nøgleordet lokalt ville tildelingen i linje 8 vedrøre den globalt definerede variabel med det samme navn defineret tidligere.

#!/ bin / bash
# definer en variabel besked til scriptet
message = ”Hej igen!”
outputWelcomeMessage ()
# definer en lokal variabel med samme navn
Lokal besked = ”Hej!”
ekko $ besked

outputWelcomeMessage () # udskriver Hej!
echo $ message # udskriver Hej igen!

Udvide omfanget af en variabel

For at gøre en intern variabel synlig for andre underordnede processer er der behov for et yderligere trin. Dette trin kaldes eksport af en variabel. Bash tilbyder brugen af ​​søgeordseksporten efterfulgt af variabelnavnet. Nedenstående liste viser dette for den variable backupPath.

$ backupPath = ”/ opt / backup /”
$ eksport backupPath

Eksportkommandoen er en indbygget shell, der bruges til at definere variablen som en subshells (skaller, der er skabt fra originalen) arver. Variabler, der eksporteres, kan læses og skrives ved mere end én proces.

Den anden mulighed er at erklære variablen som en miljøvariabel lige fra starten. Du kan gøre det ved at bruge nøgleordet erklære efterfulgt af indstillingen “-x” (se [5] for mere info om erklær kommandoen). Effekten svarer til den eksportkommando, der blev introduceret før.

$ erklære -x BACKUPPATH = ”/ opt / backup /”

Arv fra andre sessioner

Når du udfører et program, arver det automatisk sine miljøvariabler fra den overordnede proces. For eksempel hvis $ HOME er indstillet til / root i forælderen, så er barnets $ HOME-variabel også indstillet til / root.

Yderligere kommandoer

Blandt andet kommer Linux med nyttige kommandoer og muligheder, der vedrører variabler. De to første kaldes env og printenv. De viser alle miljøvariabler.

Billedet nedenfor viser output fra kommandoen env i en terminal, der køres i en X-session. Den indeholder variabler som $ XTERM (terminal type), $ SHELL (programmet, der kaldes ved login, og viser / bin / bash for stien til Bash-tolken), $ LS_COLORS (de farver, der er i brug for at fremhæve forskellige filer typer, når du ringer til ls) og $ DESKTOP_SESSION (det nuværende X Desktop-miljø).

Den tredje og den fjerde er muligheder for eksportkommandoen - -p og -n. -p er forkortelse for udskrivning og viser bare alle de eksporterede variabler i den aktuelle skal ved hjælp af erklær kommandoen.

$ eksport -p
erklære -x DESKTOP_SESSION = "xfce"
erklære -x DISPLAY = ": 0"
erklære -x GLADE_CATALOG_PATH = ":"
erklære -x GLADE_MODULE_PATH = ":"
erklære -x GLADE_PIXMAP_PATH = ":"
erklære -x HOME = "/ home / frank"
erklære -x LANG = "de_DE.UTF-8 "

Indstillingen -n bruges til at frakoble en miljøvariabel. Nedenstående liste viser dette for den tidligere definerede variabel BACKUPPATH.

$ eksport -n BACKUPPATH

Konklusion

Bash er et meget smart, men undertiden også lidt komplekst miljø. Variabler styrer, hvordan de forskellige værktøjer interagerer. Eksport af variabler hjælper med at kommunikere mellem processer og er let at bruge i hverdagen.

Om forfatterne

Jacqui Kabeta er miljøforkæmper, ivrig forsker, træner og mentor. I flere afrikanske lande har hun arbejdet i it-industrien og NGO-miljøer.

Frank Hofmann er it-udvikler, træner og forfatter og foretrækker at arbejde fra Berlin, Genève og Cape Town. Medforfatter til Debian Package Management Book tilgængelig fra dpmb.org

Links og referencer

5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...
Sådan installeres League Of Legends på Ubuntu 14.04
Hvis du er fan af League of Legends, er dette en mulighed for dig at prøvekøre League of Legends. Bemærk, at LOL understøttes på PlayOnLinux, hvis du ...