2010-11-19 49 views
11

可能聽起來像一個新手問題(這是因爲我是Ruby和IRB的新手),但是有沒有辦法將您在IRB中執行的命令保存到文件中?我正在玩WATIR,並希望將所有輸​​入保存到文件中,而不是複製和粘貼每個文件。如何將IRB輸入保存爲.rb文件?

感謝您的幫助!

+0

涉及:http://stackoverflow.com/questions/4218940/frequently-flush-irb-history-to-file – tinifni 2010-11-19 21:51:49

回答

27

在我的機器,我可以把這個在我的.irbrc文件(位於你的主目錄):

Kernel.at_exit { 
    File.open("irb.log", "w") do |f| 
    f << Readline::HISTORY.to_a.join("\n") 
    end 
} 

它創建一個文件包含您的readline歷史記錄的irb.log。 Irb使用readline作爲命令輸入。它可能被配置爲不爲某些人使用readline,我不知道。也許歷史將在某個時候被截斷,或者它可能會被你在irb會話中執行的某些命令修改......但試試看看它是否有效。

如果要包含日誌中的IRB提示符並在每個命令的結果,那麼就用發球來記錄IRB的輸出:

$ irb | tee irb.log 
+0

+1!高雅的解決方 – jwueller 2010-11-19 23:08:50

+0

我用這個,它的工作就像一個魅力!謝謝 :) – Enrique 2010-11-23 16:59:11

0

我在找同樣的事情時發現了這個問題。我最終從IRB切換到Pry;它是Ruby的一個單獨的REPL項目,具有IRB中不支持的大量高級功能。

非常值得一看。

Pry