Get directory from which script was called from
When you invoke a command in the shell, the new process inherits the working directory of the parent. Here are two ways get the working directory:
echo "$PWD" # variable pwd # builtin command
By "directory it was called from" you seem to mean its working directory. You can change this inside the script using e.g.,
cd, but before you do so,
pwd will print it out. It'll also likely be in the variable
If you'll need the initial working directory after changing it, just save it at the top of your script (before changing it)
#!/bin/bash initial_wd=`pwd` # ... do a lot of stuff ... # ⋮ cd "$initial_wd"
If you're using this to get back to the directory you started in, see also
Related videos on Youtube
c0dehunter about 2 hours
I have a script
/usr/bin. Is it possible to get and print the directory the script was called from?
So if I call
/home/methe output will be
jordanm over 9 yearsIn bash, there is also "$OLDPWD".
derobert over 9 years@jordanm Indeed there is, but that won't necessarily be the initial working directory (e.g., if you've used
Darren Bishop over 8 years$OLDPWD is what I need; I run bash scripts from the CMD Prompt on Win7 and this was the environment variable that held the directory I run the script from. Cheers