I need to set the environment variables, usually we do this by
source script.sh
But now, I am automating it during the boot process and it looks like the root boots by default with sh
shell. How do I source this script in sh
?
The dot command '.
' is the equivalent of the C Shell (and Bash) source
command. It is specified by POSIX (see dot
), and supported by the Bourne and Korn shells (and zsh
, I believe).
. somefile
Note that the shell looks for the file using $PATH
, but the file only has to be readable, not executable.
As noted in the comments below, you can of course specify a relative or absolute pathname for the file — any name containing a slash will not be searched for using $PATH
. So:
. /some/where/somefile
. some/where/somefile
. ./somefile
could all be used to find somefile
if it existed in the three different specified locations (if you could replace .
with ls -l
and see a file listed).
Pedants of the world unite! Yes, if the current directory is the root directory, then /some/where/somefile
and ./some/where/somefile
would refer to the same file — with the same real path — even without links, symbolic or hard, playing a role (and so would ../../some/where/somefile
).