According to Chris F.A. Johnson on 2/11/2010 4:23 PM:
> On Fri, 12 Feb 2010, Peng Yu wrote:
> 
>> $0 gives the file name of the script. I could use several shell
>> command to get the directory where the script is in. But I'm wondering
>> if there is an easy-to-use variable that refers to the directory where
>> the script is in?
> 
>   $0 normally gives the full path to the file, so: "${0%/*}"

No, $0 normally gives the argv[0], which matches how the file was invoked.
 If it was invoked by absolute path (or even an anchored invocation, such
as ./script), then you can compute it yourself.  Otherwise, you have to
recreate the PATH walk in your script to determine where the script was
eventually located, and hope that the script was not invoked in such a way
that argv[0] does not match the name of the script being run.

Look at any configure script generated by autoconf for a sample of how
complex it can be to portably locate $myself.

-- 
Don't work too hard, make some time for fun as well!

Eric Blake             e...@byu.net

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to