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