Quite often, the script I want to execute is not located in my current working directory and I don't really want to leave it.
Is it a good practice to run scripts (BASH, Perl etc.) from another directory? Will they usually find all the stuff they need to run properly?
If so, what is the best way to run a "distant" script? Is it
. /path/to/script
or
sh /path/to/script
and how to use sudo
in such cases? This, for example, doesn't work:
sudo . /path/to/script
Best Answer
You can call your script using only the whole path, without the dot
.
:sudo
also works fine:Do you mean like, "will my script find the files which are in the same folder?" That depends of your code. For example, if you have the script
/tmp/test.sh
:If you invoke it from your home folder, it will run
ls
in your home:In this situation,
dirname
is your ally:Running it from your home folder, it gives:
which is the content of my
/tmp/
folder.