如何在反引号运算符中替换变量的值?
script_dir = File.expand_path File.dirname(__FILE__)
p `ruby -e p "$script_dir"` # this does not work
答案 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}"`