替换反引号操作符内的变量值

时间:2013-07-16 12:39:35

标签: ruby

如何在反引号运算符中替换变量的值?

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

2 个答案:

答案 0 :(得分:27)

在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"

答案 1 :(得分:18)

Ruby string interpolation与反引号运算符一起使用:

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