l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
September 15: Scratch: programming for children and other not-yet-programmers
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2004 Aug 27 11:39

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Identifying the directory that contains the currentlyrunning executable?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Identifying the directory that contains the currentlyrunning executable?



On Fri, Aug 27, 2004 at 10:28:27AM -0700, Ken Bloom wrote:
...
> Is there a way to identify the directory that contains the currently
> running script in bash? i.e. if I'm running /home/bloom/bin/foo in
> /bin/bash, and pwd is /home/bloom, how can I programmatically get
> either /home/bloom/bin/foo or /home/bloom/bin to refer to it?
> (This would be particularly nice when using calling `java -classpath`
> from a shell script wrapper)

$0 has already been suggested, but looking at the bash reference manual,
it sounds like $_ might also be useful:

    (An underscore.) At shell startup, set to the absolute filename of
    the shell or shell script being executed as passed in the argument
    list. Subsequently, expands to the last argument to the previous
    command, after expansion. Also set to the full pathname of each
    command executed and placed in the environment exported to that
    command. When checking mail, this parameter holds the name of the
    mail file.

I haven't actually tried that, but it sounds like you'd need to capture
it as the first command of your shell script.

> Are there ways to do this in other scripting languages (e.g. perl)?

This should work in Perl:

    #!/usr/bin/perl
    use FindBin;

    print $FindBin::Bin, "\n";


Matt

-- 

*************************************************
* Matt Roper <matt@mattrope.com>                *
* http://www.mattrope.com                       *
* PGP Key: http://www.mattrope.com/mattrope.asc *
*************************************************
_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.