Встроенная интерполяция строки в одинарных кавычках

Я строю строку, которая будет использоваться в качестве команды для запуска на Windows-боксе через SSH.

Команда должна быть выполнена с элементами, заключенными в двойные кавычки, поэтому мне нужно заключить команду в одинарные кавычки. Однако это означает, что я теряю возможность использовать встроенную интерполяцию.

Так есть ли способ, которым я все еще могу использовать встроенную интерполяцию для строки в одинарных кавычках?

3 ответа

Решение

Используйте%Q{command} следующим образом:

 puts %Q{Hello "xyz"}  => Hello "xyz"

 puts %Q{"Hello" 'xyz'} => "Hello" 'xyz'

Нет, вы не можете использовать интерполяцию со строкой в ​​одинарных кавычках. Вместо этого вы можете избежать двойных кавычек.

puts "I say \"Hello\""
# >> I say "Hello"
puts %Q(I say "Hello", you say #{goodbye})
Другие вопросы по тегам