BASH-programmering

Eksporterer Bash-variabler

Eksporterer Bash-variabler
Å forstå variabler i Bash-skallet er viktig for å jobbe med Linux på en profesjonell måte. Det er en av nøkkelkravene for programmering, samt å oppnå Linux Professional Institute Certification (LPIC) nivå 1 [2].

Den tidligere publiserte artikkelen av Fahmida Yesmin [4] gir deg en fantastisk introduksjon til Bash-variabler. Her går vi videre, og forklarer hvordan du kan erklære variabler i Bash på en slik måte at du kan bruke dem i andre miljøer på ditt Linux-system, og hvilke tilsvarende bivirkninger du må ta i betraktning.

En kort beskrivelse av Bash

Bash-skallet ble først utgitt i 1989 og har blitt brukt som standard påloggingsskall for de fleste Linux-distribusjoner. Brian Fox skrev Bash som et UNIX-skall og kommandospråk for GNU Project som en gratis erstatning for programvare for Bourne-skallet. Det er et akronym for Bourne Again Shell. Bash er i stor grad kompatibel med sh og inneholder nyttige funksjoner fra Korn-skallet ksh og C-skallet csh [6].

Mens GNU-operativsystemet gir andre skall, inkludert en versjon av csh, Bash er standard interaktivt skall. Den er designet med tanke på bærbarhet, og kjører for tiden på nesten alle versjoner av UNIX pluss andre operativsystemer [9].

Bash-variabler i et nøtteskall

Variabler er viktige komponenter i programmeringsspråk. De er referert og manipulert i et dataprogram. Enkelt sagt, variabler representerer navngitte minneceller. Dette er det samme i Bash som i ethvert programmeringsspråk. Dette gjør det mulig for oss som mennesker og brukere av datamaskinen å lagre verdier i "hjernen" på datamaskinen og finne dem igjen via det tildelte navnet på variabelen.

Begrepet variabel refererer til en kombinert form av to ord, i.e., variere + i stand, noe som betyr at verdien kan endres, og den kan brukes flere ganger. I motsetning til dette kalles variabler som ikke kan endres, konstanter. [10]

Så lenge det er nok minne tilgjengelig for skriptet ditt, kan du fritt opprette og bruke variabler. Du kan ganske enkelt angi dem ved å definere et variabelnavn og deretter tildele verdien. Et variabelt navn i Bash kan inneholde bokstaver, sifre og understrekninger. Navnet kan bare startes med bokstav og understreking. Gyldige variabelnavn er størrelse, tax5 og _tax20, men ikke 5 regler.

En variabel verdi i Bash kan inneholde et tall, et enkelt tegn, en streng med tegn eller en liste over elementer (kalt array). Den har ikke en synlig datatype, og den interne datatypen til variabelen blir automatisk funnet ut (eller avledet) ved tildeling av en verdi. Videre er det ikke nødvendig å erklære variabelen - å tildele en verdi til referansen vil opprette variabelen automatisk. Eksemplet Bash-skript nedenfor viser dette for en strengoppgave og en numerisk nummeroppgave.

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

Navngi konvensjoner av bashvariabler

Det er ingen faste regler for staving av navn på variabler, bare konvensjoner. Disse konvensjonene brukes:

For globale IT-selskaper er det vanlig å jobbe med stilguider for å sikre en felles kodestil blant selskapet. Se Developer Editorial for IBM og Google Style Guide [3] for mer informasjon om konvensjonene de følger.

Variabel synlighet

Standardsaken er at en variabel er lokalt bundet til en struktur, funksjon, skript eller prosess, og kan ikke nås utenfra den. Eksemplet nedenfor viser dette for variabelen $ melding som tilhører skriptet, og $ velkomst som hører til funksjonen outputWelcomeMessage ().

#!/ bin / bash
# definer en variabel melding til skriptet
melding = ”Hei igjen!”
outputWelcomeMessage ()
# definer en lokal variabel
velkommen = ”Hei!”
ekko $ velkommen

outputWelcomeMessage () # utskrifter Hei!
echo $ message # prints Hei igjen!

For å sikre at en tidligere definert variabel med samme navn er lokalt bundet, bruker du nøkkelordet local som vist neste. Uten nøkkelordet lokalt vil oppgaven i linje 8 forholde seg til den globalt definerte variabelen med samme navn som tidligere definert.

#!/ bin / bash
# definer en variabel melding til skriptet
melding = ”Hei igjen!”
outputWelcomeMessage ()
# definer en lokal variabel med samme navn
Lokal melding = ”Hei!”
ekko $ melding

outputWelcomeMessage () # utskrifter Hei!
echo $ message # prints Hei igjen!

Utvide omfanget av en variabel

For å gjøre en intern variabel synlig for andre barneprosesser, er det nødvendig med et ekstra trinn. Dette trinnet kalles å eksportere en variabel. Bash tilbyr bruk av søkeordeksporten etterfulgt av variabelnavnet. Oppføringen nedenfor viser dette for variabelen backupPath.

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

Eksportkommandoen er et innebygd skall som brukes til å definere variabelen som en som underskjell (skjell som er opphavet fra originalen) arver. Variabler som eksporteres kan leses og skrives ved mer enn én prosess.

Det andre alternativet er å erklære variabelen som en miljøvariabel helt fra starten. Du kan gjøre det ved å bruke nøkkelordet erklære etterfulgt av alternativet “-x” (se [5] for mer info om erklær kommandoen). Effekten er lik eksportkommandoen som ble introdusert før.

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

Arv fra andre økter

Når du kjører et program, arver det automatisk miljøvariablene fra foreldreprosessen. For eksempel hvis $ HOME er satt til / root i foreldrene, så er også $ HOME-variabelen satt til / root.

Ytterligere kommandoer

Blant annet kommer Linux med nyttige kommandoer og alternativer som er relatert til variabler. De to første kalles env og printenv. De viser alle miljøvariablene.

Bildet nedenfor viser utdataene fra kommandoen env i en terminal som kjøres i en X-økt. Den inneholder variabler som $ XTERM (terminal type), $ SHELL (programmet som kalles ved innlogging, og viser / bin / bash for banen til Bash-tolken), $ LS_COLORS (fargene som er i bruk for å markere annen fil typer når du ringer til ls), og $ DESKTOP_SESSION (det nåværende X Desktop Environment).

Den tredje og den fjerde er alternativer for eksportkommandoen - -p og -n. -p er kort for utskrift og viser bare alle de eksporterte variablene i det gjeldende skallet ved hjelp av deklarerkommandoen.

$ 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 "

Alternativet -n brukes til å deaktivere en miljøvariabel. Oppføringen nedenfor viser dette for den tidligere definerte variabelen BACKUPPATH.

$ eksport -n BACKUPPATH

Konklusjon

Bash er et veldig smart, men noen ganger også litt komplekst miljø. Variabler styrer hvordan de forskjellige verktøyene samhandler. Eksport av variabler hjelper med å kommunisere mellom prosesser og er enkel å bruke i hverdagen.

Om forfatterne

Jacqui Kabeta er miljøverner, ivrig forsker, trener og mentor. I flere afrikanske land har hun jobbet i IT-bransjen og NGO-miljøer.

Frank Hofmann er IT-utvikler, trener og forfatter og foretrekker å jobbe fra Berlin, Genève og Cape Town. Medforfatter av Debian Package Management Book tilgjengelig fra dpmb.org

Lenker og referanser

Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...
Mus Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Etterlig museklikk ved å sveve med Clickless Mouse i Windows 10
Bruk av mus eller tastatur i feil stilling for overdreven bruk kan føre til mange helseproblemer, inkludert belastning, karpaltunnelsyndrom og mer. I ...
Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...