whats the difference between executing script like
# ./test
and
# . ./test
test is simple script for example
#!/bin/bash
export OWNER_NAME="ANGEL 12"
export ALIAS="angelique"
i know the results but im unsure what actually happens
Thanks
./foo
executed foo
if it's marked as executable and has a proper shebang line (or is an ELF binary). It will be executed in a new process.
. ./foo
or . foo
loads the script in the current shell. It is equal to source foo
With your example code you need to use the second way if you want the exported variables to be available in your shell.
With the dot alone, bash is "sourcing" the specified file. It is equivalent to the source
builtin and attempts to include and execute the script within the same shell process.
The ./
starts a new process, and the current shell process waits for it to terminate.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With