Forskellen på at køre og source et Bash-script: En guide

Hvad er forskellen på at køre et Bash-script som A og at source et Bash-script som B? A: ./myscript B: source myscript

Forskellen på at køre et Bash-script som A og at source et Bash-script som B er, at eksekvering kører scriptet i en ny subshell uden at påvirke den nuværende shell, mens sourcing kører scriptet i den nuværende shell og påvirker dens miljøvariabler og indstillinger.

Forskellen på at køre et Bash-script som A og at source et Bash-script som B

Når du kører et Bash-script, kan du gøre det på to forskellige måder: enten ved at eksekvere det direkte eller ved at source det. Her er forskellene mellem de to metoder:

  • Eksekvering af script (./myscript):
    • Scriptet køres i en ny subshell.
    • Ændringer i miljøvariabler og andre shell-indstillinger påvirker ikke den nuværende shell.
    • Eventuelle exit-kommandoer i scriptet vil kun afslutte subshellen, ikke den nuværende shell.
    • Scriptet skal have eksekveringstilladelse (chmod +x myscript).
  • Source et script (source myscript):
    • Scriptet køres i den nuværende shell.
    • Ændringer i miljøvariabler og andre shell-indstillinger påvirker den nuværende shell.
    • Eventuelle exit-kommandoer i scriptet vil afslutte den nuværende shell.
    • Scriptet behøver ikke eksekveringstilladelse.

Valget mellem at eksekvere eller source et script afhænger af, om du ønsker at ændringerne i scriptet skal påvirke den nuværende shell eller ej.