2015-11-19 40 views
1

我有訪問和編輯同一目錄中的所有.txt文件與Dir.glob('*.txt') do |rb_file|如何在Ruby腳本以可執行文件運行時訪問調用文件夾?

如果我把它從終端ruby myscript.rb一切工作正常一個.RB腳本。

然後我做了一個可執行文件,在Mac OS上雙擊啓動,如thisthis的解釋所解釋的。我開始與#!/usr/bin/env ruby文件,授予權限​​,並與終端打開它。

Ruby正在工作,但是當我嘗試訪問同一目錄中的文件時,腳本找不到它們。實際上,該腳本在/ Users/myname目錄中查找這些文件。

如何訪問雙擊文件所在的原始目錄?

我試用./沒有成功。 絕對路徑不是一個選項,除非以編程方式檢索。

謝謝

+0

你有沒有想出解決辦法? –

回答

0

如果我理解你的權利,你應該能夠使用該工具來獲取目錄中的Ruby腳本是不管你如何調用它。

File.dirname(File.expand_path(__FILE__)) 

如果我做一個簡單的腳本,只是puts以上,並將其放置在~/tmp/foo.rb這是輸出。我的提示是我的當前目錄,後面跟着一個'$'。在任何情況下,都會返回相同的值。

~/tmp $ ruby foo.rb 
/Users/philip/tmp 
~ $ ruby tmp/foo.rb 
/Users/philip/tmp 
~ $ ruby /Users/philip/tmp/foo.rb 
/Users/philip/tmp 
~ $ cd/
/$ ruby /Users/philip/tmp/foo.rb 
/Users/philip/tmp 
相關問題