What is the difference between source
and ./
?
source script will change your current environment, ./script will not.
(EDIT: script has to be executable to use ./)
source script.sh
runs the script within the current process, thus all variable assignments are preserved as variables even after the script finishes (and don't have to be explicitly export
'd).
./script.sh
just runs the script in a subprocess, and any variables which are assigned disappear after the script is done.