用__FILE__常量奇怪的ruby行为?
嗨,我一直在ruby中测试一些非常基本的东西,并发现以下内容。用__FILE__常量奇怪的ruby行为?
如果我把一个称为xxxx.rb此路径中文件“C:\ Documents和Settings \桌面\ xxxx.rb”
puts __FILE__
并调用在命令行此红宝石文件,而无需前述红宝石输出是以下
C:/文件和设置/桌面/ xxxx.rb
,但如果我调用xxxx.rb文件与红宝石(红宝石xxxx.rb)在等的输出的命令如下:
xxxx.rb
这是为什么差值Δθ由于
PD:我在WINDOWS XP SP3
RUBY版本:1.8.6
你需要的是扩大正确的路径:
# Affected by the current working directory, etc.
puts __FILE__
# Always an absolute path
puts File.expand_path(__FILE__, Dir.getwd)
这需要你当前的工作目录进去。
我猜,当你的文件只需双击,绝对路径被传递。你应该通过调用它想达到同样的效果:
ruby C:/Documents and Settings/Desktop/xxxx.rb
是的,你是对的。但我没有双击.rb文件。我只是用两种方法在cmd行提示中调用该文件。 只调用xxxx.rb第一种方式(obviousley路径是我在为C:/ Documents和设置/桌面/) 第二种方法叫红宝石xxxx.rb 我觉得有shouldn'b有差异,但好吧,打电话给你这样的文件给我的绝对路径... 虽然我仍然困惑... 谢谢。 – flyer88 2009-11-05 14:02:04
谢谢你的赞赏。我发现它很有用,但是我仍然对获取两个不同输出的事实只是调用文件提供了在xxxx.rb前添加ruby的细微区别的事实。如果以这种方式调用文件: Way 1:xxxx.rb 方式2:ruby xxxx.rb 我期望获得相同的结果,但它给了我不同的结果... 非常感谢。 – flyer88 2009-11-05 14:05:58