2014-01-18 42 views
0

我有一個看起來像這樣的紅寶石單線。如何在這個Ruby oneliner中正確地跳出引號

ruby -e "File.open('/tmp/foo', 'a') { |f| f.puts(\"Testing \[email protected]\#\$%\^&\*\(\)_\+\{\}\|:<>\?\") }" 

它工作得很好,直到我還想在puts()方法中追加一個引號。

ruby -e "File.open('/tmp/foo', 'a') { |f| f.puts(\"Testing \[email protected]\#\$%\^&\*\(\)_\+\{\}\|:<>\?"\") }" 

我不確定什麼是正確的方法來逃脫它。任何想法?

+0

任何的[這些想法](http://stackoverflow.com/questions/6705982/escaping-single-and-double-qoutes-from-a-string-in -ruby)有幫助嗎? – summea

+0

我不這麼認爲。在我這裏沒有。 – beyonddc

回答

1

您可以使用%Q {...}或%{}代替ruby字符串中的「...」,它們是等價的。

ruby -e "File.open('/tmp/foo', 'a') { |f| f.puts(%Q{Testing \[email protected]\#\$%\^&\*\(\)_\+\{\}\|:<>\?\"}) }" 

ruby -e "File.open('/tmp/foo', 'a') { |f| f.puts(%{Testing \[email protected]\#\$%\^&\*\(\)_\+\{\}\|:<>\?\"}) }"