How can I get the directory of my executing script?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How can I get the directory of my executing script?
# 1  
Old 12-28-2009
How can I get the directory of my executing script?

hi,

I tried whence $0, but that just gives me the filename relative to where I am executing the script from. I need to get the full pathname.

thanks
# 2  
Old 12-28-2009
pwd won't work?

regarding whence, I guess "$0" depends on how you execute the script ( via absolute path or relative path )

try executing your script with absolute path and check.

eg.

Code:
/this/is/my/abs/path/script.ksh

# 3  
Old 12-28-2009
pwd gives the location of where I am executing the script from.

My users can execute it from anywhere, so I cant force them to put the absolute path

thanks
# 4  
Old 12-28-2009
you can run from anywhere of course.
just use absolute path while executing.

what i mean to say is this

Code:
-bash-3.1$ pwd
/a/b
-bash-3.1$ /this/is/my/abs/path/script.ksh
-bash-3.1$ cd ..
-bash-3.1$ pwd
/a
-bash-3.1$ /this/is/my/abs/path/script.ksh


I am not sure if this solve your problem. just a try.
# 5  
Old 12-28-2009
hi,

use : which <your script>

this assumes that PATH has been exported
cheers
# 6  
Old 12-28-2009
which wont work, because there will be many scripts with the same name in different locations and they will be executed using many different ways.

Surely there must be a way to execute a script from any location and get that script to output it's full path to stdout??
# 7  
Old 12-28-2009
At least in bash, $0 includes the relative or absolute path, depending on what the user typed. If it is a relative path (first character is not "/"), you just prepend $PWD/.

Code:
#!/bin/bash
if [ "#{0:0:1}" = "/" ]; then
    spath=$0
else
    spath=$PWD/$0
fi
echo "Script is at $spath"

I don't know ksh so I cannot help you with the exact syntax for that.

For a relative path, you'll end up with "/./" in the middle of the path. It's ugly but legal. You can get rid of that with a little more work.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Executing a command line in a directory and its subdirectories

I'm finally about to make the jump from PHP's mysql driver to the newer mysqli one using the mysqli converter tool. The tool is called by this command line: php /usr/share/nginx/html/rather/converter/cli.php -d -p ".php,.shtml,.inc" -u -b -v -w >> /tmp/convert.log e.g. at the web root:... (2 Replies)
Discussion started by: dheian
2 Replies

2. UNIX for Dummies Questions & Answers

Script dosent exits after executing the script

Hi i wrote a script which dosent exists after executing any help #!/bin/bash netstat -ptlen | grep 10000 if ; then echo "Hive Thrift server is running" exit 0 else echo "Hive Thrift server is down Trying to Bring up the service" | mail -s "ALERT" team@domain.com `nohup hive... (7 Replies)
Discussion started by: vikatakavi
7 Replies

3. UNIX for Dummies Questions & Answers

Executing profile from any directory other than $HOME

Is there a way to run the profile which is not in $HOME directory? then whats the command for that? (1 Reply)
Discussion started by: SKhan
1 Replies

4. Shell Programming and Scripting

Variables of executed script available in executing script

Hi, I have a script get_DB_var.ksh which do a data base call and get some variables as below: sqlplus -silent $user/$pass@dbname <<END select col1, col2, col3 from table_name where col4=$1; exit; END Now I want to access all these variables i.e.... (9 Replies)
Discussion started by: dips_ag
9 Replies

5. Shell Programming and Scripting

CD (change directory) - Not advisable for executing a command

Hi, This is a quick one. I have got a review comment in one of the scripts that i wrote: "In UNIX script it not advisable to use cd to a directory and then run command." Is this true? I was trying to cd to log directory and use some cat or head or ls command. Many Thanks, Sam (2 Replies)
Discussion started by: samplify
2 Replies

6. UNIX for Advanced & Expert Users

Executing a shell script from windows;script present in unix

I need to execute a shell script kept in unix machine from windows. User id, password area available. For eg. There's a shell script wich moves all the logs kept in my home directory to a directory named LOGS. Now i need to get this done through windows; either using a batch file, or java... (4 Replies)
Discussion started by: rajneesh_kapoor
4 Replies

7. Shell Programming and Scripting

getting : No such file or directory while executing a shell script

Hi all, I am getting : No such file or directory while executing a shell script. But i have that corresponding file in the corresponding path. It also have executable rights. Please help me out in this Thanks in advance. Ananthi.U (7 Replies)
Discussion started by: ananthi_ku
7 Replies

8. Shell Programming and Scripting

Executing script's directory

I have a shell script /home/user1/bin/sh1, how can I print out the directory of this file inside the script. Say I am in /home/user1/, then I run /home/user1/bin/sh1 I need it to print out /home/user1/bin. Thanks. (2 Replies)
Discussion started by: jasony001
2 Replies

9. Shell Programming and Scripting

Monitoring a directory for new files with .xx and executing command if found

Hi Guys. I am a complete shell scripting newbie with some syntax and commands understanding. I'm more of a win admin. With that said: I need to write a shell script to monitor a directory '/Mon_Dir' for new occurrences of files with .xx extension. Once a new file is detected in the directory, a... (4 Replies)
Discussion started by: krkan
4 Replies

10. Shell Programming and Scripting

general question on executing file in drwx--x--x directory

suppose: nevermind, i figured it out, haha... (2 Replies)
Discussion started by: cul8erppl
2 Replies
Login or Register to Ask a Question