Which Directory was my ruby script run from?

M

Matthew John

Hi All,

How do I find out which directory my ruby script was run from?

Thanks Matthew John
p.s Today I'm using Windows
 
J

James Edward Gray II

Hi All,

How do I find out which directory my ruby script was run from?

Thanks Matthew John
p.s Today I'm using Windows

Try:

File.dirname($PROGRAM_NAME)

James Edward Gray II
 
M

Mike Fletcher

Matthew said:
Hi All,

How do I find out which directory my ruby script was run from?

Maybe Dir.getwd?

------------------------------------------------------------- Dir::getwd
Dir.getwd => string
Dir.pwd => string
------------------------------------------------------------------------
Returns the path to the current working directory of this process
as a string.

Dir.chdir("/tmp") #=> 0
Dir.getwd #=> "/tmp"
 
J

Jamey Cribbs

Mike said:
Matthew John wrote:



Maybe Dir.getwd?

------------------------------------------------------------- Dir::getwd
Dir.getwd => string
Dir.pwd => string
------------------------------------------------------------------------
Returns the path to the current working directory of this process
as a string.

Dir.chdir("/tmp") #=> 0
Dir.getwd #=> "/tmp"
I use File.dirname($0).

Jamey Cribbs

Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.
 
M

Matthew John

I've written a little script to test, and it looks like the second reply
by Mike is the only one that works. The other two provide me with the
location of the file, not the directory where the file was run from.

My script is in c:\sparkdriver\bin and this is set in my path.

When I run the the testfile.rb script from the c:\Documents and Settings
folder I get the following results:-

C:\Documents and Settings>testfile.rb
Physical Location of File c:\sparkdriver\bin

c:/sparkdriver/bin - File.dirname($PROGRAM_NAME)
C:/Documents and Settings - Dir.getwd
c:/sparkdriver/bin - File.dirname($0)

---- testfile.rb

puts "Physical Location of File c:\\sparkdriver\\bin\n\n"

dir = File.dirname($PROGRAM_NAME)
puts dir + ' - File.dirname($PROGRAM_NAME)'

dir = Dir.getwd
puts dir + ' - Dir.getwd'

dir =File.dirname($0)
puts dir + ' - File.dirname($0)'

Thanks for your help.

Matthew John
 
M

Mike Fletcher

Gene said:
"__FILE__", too, I guess

Nope. __FILE__ is the name current source file, which can be different
than $0 in different modules.

freebie:~ 839> ruby aprog.rb
$0: aprog.rb
__FILE__: ./amodule.rb
aprog $0: aprog.rb
aprog __FILE__: aprog.rb
freebie:~ 840> cat aprog.rb
#!/usr/local/bin/ruby
require 'amodule'

f = Foo.new

f.pr_dollar0
f.pr_file

puts "aprog $0: #{$0}"
puts "aprog __FILE__: #{__FILE__}"

exit 0

__END__
freebie:~ 841> cat amodule.rb
class Foo
def pr_file
puts "__FILE__: #{__FILE__}"
end
def pr_dollar0
puts "$0: #{$0}"
end
end
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top