Подставляя значение переменной внутри оператора backtick - программирование
Подтвердить что ты не робот

Подставляя значение переменной внутри оператора backtick

Как я могу подставить значение переменной внутри оператора backtick?

script_dir = File.expand_path File.dirname(__FILE__)
p `ruby -e p "$script_dir"` # this does not work
4b9b3361

Ответ 1

В Ruby, в отличие от Perl, знак доллара указывает глобальную переменную, а не обычную регулярную переменную для расширения в строке. В строке вам нужно использовать конструкцию # {}:

p `ruby -e "p #{script_dir}"`

Пример:

irb(main):011:0> str = '\'howdy\''
=> "'howdy'"
irb(main):012:0> `ruby -e "p #{str}"`
=> "\"howdy\"\n"