$0 doesn't have full directory path


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting $0 doesn't have full directory path
# 1  
Old 01-18-2012
$0 doesn't have full directory path

I'm running AIX unix korn shell. If I echo $0, I only get the filename, it does not have the directory name also. So when I do: `dirname $0` it returns a . (meaning current directory). How get $0 to return the full path/filename? Do I need something in my .profile? Thank you.
# 2  
Old 01-18-2012
$0 will equal however the program is called on the command line.

I believe you want the "whence" command, combined with the basename command.

Code:
Code:
$ cat efs1
#!/usr/dt/bin/dtksh

program=$(whence $(basename ${0}))

print $program

exit 0
$

No matter how it is called, you get the full path:
Code:
$ efs1
/home2/blahblah/efs1
$ ./efs1
/home2/blahblah/efs1
$ /home2/blahblah/efs1
/home2/blahblah/efs1
$

# 3  
Old 01-19-2012
The whence didn't help either.
unix script:
Code:
#!/bin/ksh

echo zero: $0

dir1=`dirname $0`
echo dir1: $dir1

program=$(whence $(dirname ${0}))
echo $program

output:
Code:
zero: dirname_test1.sh
dir1: .
.


Last edited by Franklin52; 01-19-2012 at 11:22 AM.. Reason: Please use code tags for code and data samples, thank you
# 4  
Old 01-19-2012
Code:
program=$(whence $0)
program_dir=$(cd $(dirname $program);pwd)

Jean-Pierre.
# 5  
Old 01-19-2012
You don't want to do a whence on the dirname, but on the basename. Basename is the name of the program that is running, less the path of however it was called. Whence will return the path to the basename.
# 6  
Old 01-19-2012
I found it - at the command line when I type in the full path of the shell script the $0 will be the full path with filename. Before at the command line I was in the directory and just typing the shell script name. Thanks
# 7  
Old 01-19-2012
Exactly, that is why you want to strip out the path part of $0 by using basename first.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

What is the difference ../directory path and ./directory path in ksh?

What is the difference ../directory path and ./directory path in ksh? (1 Reply)
Discussion started by: TestKing
1 Replies

2. UNIX for Dummies Questions & Answers

Extract directory name from the full directory path in UNIX using shell scripting

My input is as below : /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/rebate/IFIND.REBTE.WROC.txt /splunk/scrubbed/loyal/IFIND.HELLO.WROC.txt /splunk/scrubbed/triumph/ifind.triumph.txt From the above input I want to extract the file names only . Basically I want to... (5 Replies)
Discussion started by: IshuGupta
5 Replies

3. Shell Programming and Scripting

How to list all Subdirectories and files with its full path in a parent directory?

How to list all Subdirectories and files with its full path in a parent directory? (1 Reply)
Discussion started by: johnveslin
1 Replies

4. Shell Programming and Scripting

How do I get an ls -l to not show the full directory path?

Hey I'm new to the forums here, and I'm seeking help for this script that I'm writing. When I do ls -l of a directory it shows the full pathname for files in it. For example, if the directory is /internet/post/forum/ and the file is topic, it currently shows internet/post/forum/topic. What's the... (3 Replies)
Discussion started by: unity04
3 Replies

5. UNIX for Dummies Questions & Answers

Present Working Directory (not the full path)

Hi, Is there a command that tells you right away the current working directory? I know the command "pwd", but that one gives the full path. if pwd gives me: /a/b/c/d/ggg/HERE I want something that will give me: HERE Thanks, Gaurab (13 Replies)
Discussion started by: gaurab
13 Replies

6. Shell Programming and Scripting

How to extract strings from full path when full path is not fixed

/Path/snowbird9/nrfCompMgrRave1230100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird6/nrfCompMgrRave1220100920.log.gz:09/20/2010 06:14:51 ERROR Error Message. /Path/snowbird14/nrfCompMgrRave920100920.log.gz:09/20/2010 06:14:51 ERROR Error Message.... (0 Replies)
Discussion started by: Shirisha
0 Replies

7. Shell Programming and Scripting

Retrieve directory path from full file path through sh

Hi, I have a file abcd.txt which has contents in the form of full path file names i.e. $home> vi abcd.txt /a/b/c/r1.txt /q/w/e/r2.txt /z/x/c/r3.txt Now I want to retrieve only the directory path name for each row i.e /a/b/c/ /q/w/e/ How to get the same through shell script?... (7 Replies)
Discussion started by: royzlife
7 Replies

8. HP-UX

pgrep doesn't perform full command line pattern matching

Hi! I need to get PID of some particular process and I wonder if I can use pgrep tool for this purpose. The problem is that pgrep doesn't perform pattern matching on the whole command line, even if I use -f key. Parsing output of ps command is not quite convenient... Also deamon, which PID I need... (2 Replies)
Discussion started by: Sapfeer
2 Replies

9. Shell Programming and Scripting

Sorting by Full directory path

I have a text file with full list of files with their full path. I wanted to sort it by directory then files then subdirectory by alphabetically. When I used the sort command it doesn't give like what I want. Could somebody help me on this. Here is the ex: This is what I'm getting... (2 Replies)
Discussion started by: javidraaj
2 Replies

10. Shell Programming and Scripting

getting full path from relative path

given a relative path, how do i convert it into a full one. i.e. if i am in /home/polypus and i am given foo/bar then to get a full path i can just concatinate it with pwd, but what if i am given "../mama" how do i programmatically convert: /home/polypus and ../mama into ... (4 Replies)
Discussion started by: polypus
4 Replies
Login or Register to Ask a Question

Featured Tech Videos