在ruby中执行shell命令,使用正确的参数转义

我必须在后台运行一个命令,但是我想为它的参数进行正确的转义.
system("rake send_mails subject='#{params[:subject]}' 2> /dev/null 1> /dev/null &");

如果我写系统(“rake”,“send_mails”,params [:subject]),那么我没有“place”用于重定向,而&标志.如果我没有为主题参数没有转义.

我该如何解决

解决方法

在Ruby 1.9中,尝试 Process.spawn
# Spawn a new process and run the rake command
pid = Process.spawn({"subject" => params[:subject]},"rake","send_mails",:out => 'dev/null',:err => 'dev/null')

# Detach the spawned process
Process.detach pid

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...