2008-10-17 108 views
8

我想編寫一個腳本,將其打包成一個gem,它將修改其參數,然後用修改後的params創建一個新的ruby進程。換句話說,類似於修改其params的shell腳本,然後執行exec $SHELL $*。爲了做到這一點,我需要一種可靠的方法來發現執行當前腳本的ruby可執行文件的路徑。我還需要獲取傳遞給當前進程的完整參數 - 包括Ruby參數和腳本參數。我該如何可靠地發現Ruby可執行文件的完整路徑?

+0

不更新一個答案直列你的問題,只需添加一個答案,你自己的問題。這樣人們就可以高舉你的答案。 – 2008-10-17 20:22:59

+1

請注意,您可能還需要'require'rbconfig'` – 2009-11-26 21:35:24

回答

6

瑞克源代碼做這樣的:

RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']). 
    sub(/.*\s.*/m, '"\&"') 
4

如果您要檢查在Linux上:讀取文件:

  • 的/ proc/PID/EXE
  • 的/ proc/PID/CMDLINE

其他有用的信息中可以找到/ proc/PID dir

0

對於腳本參數,當然要用ARGV

相關問題