2012-02-07 55 views
3

這基本上是關於Ruby控制檯(IRB)的一個很小問題,但我無法在任何地方找到答案。所以。當寫在Ruby中的控制檯,然後在它的中間按Enter鍵一份聲明中,有時控制檯希望我繼續發言,並開始尋找這樣的:Ruby控制檯多行

紅寶石1.9.2-P180:093" >

「這基本上告訴我(我想)Ruby期望我完成前一行的陳述。但是,我無法完成它或取消聲明。再次按Enter不會有幫助,如果我在此處輸入某些內容,Ruby還會停止計算其他語句。

那麼,這是什麼模式,以及如何處理它?

回答

3

這意味着你的報價是不平衡的;輸入報價。

irb(main):004:0> s="this is 
irb(main):005:0" a test" 
=> "this is\na test" 

您也可以打Ctrl-C<Return>,這將下降到根提示。 Ctrl-D會讓您回到提示,但是下一個<Return>會因未終止的報價而引發錯誤。

或者,使用pry,它可讓您使用!轉回到頂層。

+0

謝謝,就是這樣!也感謝撬鏈接。 – 2012-02-08 09:17:01

0

您仍然可以完成前面的說明。 Ruby告訴你,你在前一行打開了一個雙引號字符串,並沒有關閉它。只需輸入";結果可能是語法錯誤,但至少你的控制檯會再次變得可用。

0

引號"表示您處於字符串中間。您可以關閉該字符串,或者如果您按Ctrl-C它應該殺死當前的語句。