I have a script called installscript
which needs a change to the PATH variable.
BuildScript
file has the following code:
export PATH+=:foo/bar/ ./installscript
Running ./BuildScript
or source BuildScript
fails with an error in installscript
I have made a NewScript
and call BuildScript
from it after exporting the PATH variable
export PATH+=:foo/bar/ ./BuildScript.sh
running source NewScript
works.
I don’t understand why running BuildScript
alone won’t work.
Advertisement
Answer
That’s likely because you should not use relative directory paths in a PATH
. A relative path is a pathname that doesn’t start with a slash. Try
PATH+=:/path/to/foo/bar # Use absolute path starting with /
instead and don’t call scripts with ./script.sh
but script.sh
and let the system find the programs along the PATH
.
Also note that executing a script cannot change the environment of the parent. If you need that, scripts must be sourced with . /path/to/script
or source /path/to/script
.