Hva er forskjellen mellom innkjøp og utførelse av et skallskript

Hva er forskjellen mellom innkjøp og utførelse av et skallskript
I Unix-lignende operativsystemer er et Shell-skript en fil som inneholder en serie kommandoer som tolkes og utføres av Shell-programmet. Når det gjelder å kjøre et skallskript, er det to hovedmåter å gjøre det på: Sourcing og utførelse. Selv om de kan virke like, har de forskjellige effekter på den nåværende skalløkten og miljøvariablene, vil denne artikkelen utdype forskjellene mellom de to metodene.

Hva er forskjellen mellom innkjøp og utførelse av et skallskript

For å forstå forskjellen mellom begge måtene man først må ha en god kunnskap for å bruke begge metodene, så la oss først ha sin grunnleggende definisjon en etter en:

Sourcing et skallskript

Å skaffe et skallskript er en måte å kjøre et manus i det nåværende skallmiljøet. Alle kommandoer i et skript blir utført hvis de skrives direkte inn i kommandolinjegrensesnittet og å skaffe et skript gjør det samme. På grunn av dette gir det et alternativ til skriptet for å endre miljøvariablene og angi skallalternativer i det nåværende skallet.

For ytterligere illustrasjon har jeg laget en testfil for bash -skript og deretter utført den, her er koden for bash -filen jeg opprettet:

# Bashfile.sh
Eksporter my_info = "Hei Linuxhint"

Her har jeg laget en miljøvariabel som er my_info som har Hei Linuxhint Lagret i den og utførte den deretter ved å bruke den gitte syntaks:

.

Siden jeg har laget en fil som heter Bashfile.sh Så jeg brukte syntaks ovenfor som dette:

. Bashfile.sh

Når filen er utført, har jeg ringt miljøvariabelen for å se hva som er lagret på den, og den returnerer verdien som er lagret i den, noe som tydelig viser at endringer i miljøvariablene vedvarer i det nåværende skallet:

Utføre et skallskript

Å utføre et skallskript er en måte å kjøre et manus i et eget skall. Når et skript blir utført, opprettes det et nytt skall, skriptet kjøres i det skallet, og skallet avsluttes når skriptet er ferdig. Dette viser at eventuelle endringer i miljøvariablene eller skallalternativene i skriptet ikke vil vedvare etter at skriptet er ferdig. For ytterligere illustrasjon har jeg laget en testfil for bash -skript og deretter utført den, her er koden for bash -filen jeg opprettet:

# Bashfile.sh
Eksporter my_info = "Hei Linuxhint"

Her har jeg nettopp laget en miljøvariabel som er my_info som har Hei Linuxhint Lagret i den og utførte den deretter ved å bruke den gitte syntaks:

./

Siden jeg har laget en fil som heter Bashfile.sh Så jeg brukte syntaks ovenfor som dette:

./Bashfile.sh

Når filen er utført, har jeg kalt miljøvariabelen for å se hva som er lagret på den, og den returnerer et blank som tydelig viser at endringer som er gjort i miljøvariablene eller skallalternativene i skriptet ikke vil vedvare etter at skriptet er ferdig:

For ytterligere å illustrere forskjellen der tabellen gitt nedenfor som peker på noen av de viktigste forskjellene mellom innkjøp og utførelse av en fil:

Faktorer Utføre et skallskript Sourcing et skallskript
Aliaser og funksjoner Aliaser og funksjoner vedvarer bare i skriptets skall. Aliaser og funksjoner vedvarer i det nåværende skallet.
Miljø Endringer i miljøvariabler vedvarer bare i skriptets skall. Endringer i miljøvariabler vedvarer i det nåværende skallet.
Syntaks ./manus-navn.sh eller bash manus-navn.sh . manus-navn.SH eller Source Script-Name.sh
Hovedverktøy Kjør et selvstendig skript uten å påvirke det nåværende skallet. Sett opp miljøvariablene eller aliasene for skallet

Konklusjon

Det er to måter å kjøre Bash -skriptet den ene er ved å skaffe det, og det andre er ved å utføre det begge måtene har sin egen betydning. Hovedforskjellen mellom de to er at innkjøp av skriptfilen holder endringene i miljøvariablene i det nåværende skallet, mens utførelse av skriptet vil beholde endringene.en