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

前端之家收集整理的这篇文章主要介绍了在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

猜你在找的Ruby相关文章