如何在这个Ruby内衬中正确地使用引号

时间:2014-01-18 04:36:53

标签: ruby

我有一个看起来像这样的Ruby one衬里。

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

一切正常,直到我还想在puts()方法中附加一个引号。

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

我不确定逃脱它的正确方法是什么。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于ruby字符串,您可以使用%Q {...}或%{}代替“...”,它们是等效的。

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

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