ruby-on-rails - 如何在 Rake 任务中执行命令?

标签 ruby-on-rails shell command-line rake rake-task

我的 rails 应用程序中有 rake 任务。我想在 rake 任务中运行命令行命令。我怎样才能做到这一点。我尝试了以下但失败了

desc "Sending the newsletter to all the users"
task :sending_mail do
  run "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v"
  system "cd #{RAILS_ROOT} && ar_sendmail -o -t NewsLetters -v &"
end

上面的 run 命令抛出 run method undefined & System 命令没有抛出任何错误但没有执行。

最佳答案

rake sh 内置任务
这可能是最好的方法:

task(:sh) do
  sh('echo', 'a')
  sh('false')
  sh('echo', 'b')
end
界面类似Kernel.system但:
  • 如果返回值是 != 0,它就会中止,所以上面的内容永远不会到达 echo b
  • 命令本身在输出之前回显
  • 关于ruby-on-rails - 如何在 Rake 任务中执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668607/

    相关文章:

    HTML/ERB - 标准按钮?

    javascript - 使用 webpacker 加载字体和图像

    ruby-on-rails - 在完成另一个任务后运行一个rake任务

    html - 递归搜索和替换/添加html文件中的一些标签属性

    ruby-on-rails - Heroku SSL 表示受信任,但重定向到 http

    bash - 具体来说,当您在终端中按下 Ctrl-C 时会发生什么?

    linux - ./yourscript.sh 和 sh yourscript.sh 之间有什么区别

    linux - Bash 解析和 shell 扩展

    mysql - 为什么在 Mac OS X Lion 上的 $/usr/local/mysql/bin 内 Mysql 无法启动?

    c# - Application.Restart 不传回参数