Hvordan definere en variabel med eller uten eksport i bash

Hvordan definere en variabel med eller uten eksport i bash

Bash er et populært skriptspråk som brukes til å automatisere oppgaver og jobbe med kommandolinjegrensesnittet. En av kjernefunksjonene i bash er muligheten til å definere variabler, som kan brukes til å lagre verdier og passere dem mellom forskjellige kommandoer eller skript. Når man definerer variabler i bash, må man imidlertid være tydelig på forskjellen mellom å definere en variabel med eller uten eksportnøkkelordet.

Følg denne artikkelens retningslinjer for å lære å definere en variabel med eller uten eksport i bash.

Definere en variabel uten eksport i bash

Å definere en variabel uten eksport gjør det til en lokal variabel som bare er tilgjengelig i den nåværende skalløkten eller skriptet, noe som betyr at variabelen ikke kan nås av barneprosesser eller skript som kalles fra det nåværende skriptet. De lokale variablene kommer godt med når du lagrer midlertidige verdier som bare er nødvendige i en bestemt del av et skript, for eksempel, la oss si at du har et skript som definerer en variabel som heter My_var uten eksport:

#!/bin/bash
My_var = "Hei, Linux!""
Echo $ my_var
./child_script.sh


I dette tilfellet, My_var er en lokal variabel og er bare tilgjengelig i det nåværende skriptet. Når skriptet kjører, skriver det ut "Hallo, Linux!” til konsollen, men når det ringer barneskriptet (./child_script.sh), barnetsskriptet har ikke tilgang til verdien av My_var.


I bildet over kan man tydelig se at når barneskriptet kalles det, ikke får tilgang til den variable verdien og returnerer en tom linje i stedet for skriptfilutgangen.

Definere en variabel med eksport i bash

På den annen side, å definere en variabel med eksportnøkkelordet, gjør det til en miljøvariabel. Miljøvariabler er tilgjengelige for alle barneprosesser som er gyte fra den nåværende skalløkten eller skriptet. Dette betyr at variabelen kan brukes på tvers av forskjellige skript eller kommandoer som kalles fra det nåværende skriptet, så la oss vurdere det samme skriptet, men med My_var definert med eksport:

#!/bin/bash
Eksporter my_var = "Hei, Linux!""
Echo $ my_var
./child_script.sh


I dette tilfellet, My_var er en miljøvariabel og er tilgjengelig for alle barneprosesser som er gyte fra den nåværende skalløkten eller skriptet. Når skriptet kjører, skriver det ut "Hallo, Linux!” til konsollen, og når den kaller barneskriptet ./child_script.sh, Barnetsskriptet kan få tilgang til verdien av My_var.


I bildet over kan man tydelig se at når barnets skript heter, fikk det tilgang til den variable verdien og returnerte verdien som var "Hei, Linux”.

Merk: Her i eksempelkoden har jeg opprettet barneskriptet som kaller variabelen i hovedskriptet, så her er skallkoden for barneskriptet: Videre må du gjøre skriptfilen kjørbar ved å bruke “CHMOD +X” kommando slik at du kan kjøre skriptet.

#!/bin/bash
Echo $ my_var

Konklusjon

Når du jobber med variabler i bash, er det viktig å forstå omfanget av variabelen. Å definere en variabel uten eksport gjør det til en lokal variabel som bare er tilgjengelig i den nåværende skalløkten eller skriptet mens du definerer en variabel med eksport, gjør det til en miljøvariabel som er tilgjengelig for alle barneprosesser som er gyte fra den nåværende skalløkten eller skriptet.