1
foo.rb是一個班輪這puts __FILE__
爲什麼irb -r使__FILE__成爲絕對路徑?
irb -r ./foo.rb
帶給我的絕對路徑foo.rb.如果我運行ruby foo.rb
,這不是行爲。爲什麼它在irb中發生?
IRB 0.9.6(30年9月6日), 紅寶石1.9.3p327
foo.rb是一個班輪這puts __FILE__
爲什麼irb -r使__FILE__成爲絕對路徑?
irb -r ./foo.rb
帶給我的絕對路徑foo.rb.如果我運行ruby foo.rb
,這不是行爲。爲什麼它在irb中發生?
IRB 0.9.6(30年9月6日), 紅寶石1.9.3p327
這種情況發生在IRB的原因是一樣的道理,如果你寫了一個名爲bar.rb
,其內容如下程序會發生這種情況。
require './foo'
你會發現,採用IRB與你做的需要是不超過調用bar.rb
它有不同的要求。
從文檔:
__FILE__
- 當前正在執行的文件的名稱,其中包括相對 路徑,其中應用程序被啓動 的目錄(或當前目錄,如果它已經改變)。
所以這包括相對於啓動應用程序的目錄的路徑。誰知道irb或bar是哪裏?如果不清楚,那麼路徑也會給出。