2014-01-19 72 views
5

我寫了一個Ruby腳本,就像下面的例子。其基本功能是相同的:Ruby:在腳本執行後保持控制檯打開

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 

問題是,當我運行它打印我想要的解決方案的腳本,但控制檯窗口後立即關閉。我希望控制檯保持打開狀態。 我目前在windows上,但解決方案應該在每個系統上工作。

一種方法是用一個.bat文件運行Ruby腳本和暫停它,就像這樣:

ruby script.rb 
PAUSE 

我希望有沒有額外的.bat文件的方式。 Ruby是否有像PASUE集成的功能?

回答

7

看起來像你雙擊紅寶石腳本文件。

而是在cmd shell中發出以下命令。

ruby filename.rb 

如果你不希望出現這種情況,你可以添加gets到腳本的末尾。

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 
gets # <---- 

但不建議這樣做,因爲..如果您運行CMD shell或終端的命令,你須額外輸入返回到外殼。

+0

我最終喜歡'gets'的解決方案。我將添加一個像「用ENTER退出腳本」這樣的句子。然後用戶知道他必須做什麼。 – ph3nx

+0

@PascalGläser,如果在中間調用'exit','gets'解決方案不起作用。如果發生異常也不起作用;你不會看到錯誤追溯。 – falsetru

+0

@PascalGläser,通常其他命令行程序不會使用等待用戶在終止之前輸入。這將很難將您的程序與其他命令行程序結合起來。 (考慮重定向,管道等shell功能...) – falsetru