我有一个看起来像这样的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 \!@\#\$%\^&\*\(\)_\+\{\}\|:<>\?"\") }"
我不确定逃脱它的正确方法是什么。有什么想法吗?
答案 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 \!@\#\$%\^&\*\(\)_\+\{\}\|:<>\?\"}) }"