在Ruby中调用System时评估变量

时间:2013-09-25 11:54:36

标签: ruby system-calls ruby-1.9.3

我想在Ruby

中实际调用以下内容
echo "<html><body><b>BOLD</b></body></html>" | mutt -e "set content_type=text/html" -s "HTML content"  -- anushka.misra2@gmail.com

我使用system()方法成功地在Ruby中完成了它:

system 'echo "<html><body><b>BOLD</b></body></html>" | mutt -e "set content_type=text/html" -s "HTML content"  -- anushka.misra2@gmail.com'

现在,我希望电子邮件成为变量:

email = anushka.misra2@gmail.com
system 'echo "<html><body><b>BOLD</b></body></html>" | mutt -e "set content_type=text/html" -s "HTML content"  -- $email'

但由于它没有评估电子邮件变量,因此失败了。我该如何解决?

1 个答案:

答案 0 :(得分:1)

system %Q{echo "<html><body><b>BOLD</b></body></html>" | mutt -e "set content_type=text/html" -s "HTML content"  -- #{email}}

#{foo}是将值添加到字符串中的Ruby方法。 #{foo}仅在包含"(不是')的字符串中进行评估。 %Q{}执行相同操作的位置,但您不必在字符串中转义"