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.