首页 > 解决方案 > 如何在 bash shell 脚本内的 ruby​​-on-rails 控制台上运行命令?

问题描述

我想知道如何在 shell 脚本内的 ruby​​ on rails 控制台中运行 ruby​​ 命令?需要明确的是:我有一个 shell 脚本,它将连接到 rails 控制台上的 ruby​​,但无法从 shell 脚本在 rails 控制台内运行命令。请看下面的代码片段。

我能够成功地从 shell 脚本进入 rails 控制台,但无法在 shell 脚本本身内提供 ruby​​ 命令。

这个示例脚本允许我进入 rails 控制台:

#!/bin/bash
/usr/bin/helpkit-docker.sh --rails-console

但是,当我使用 EOF 扩展上述脚本以在 rails 控制台内运行命令时,它会引发错误:

#!/bin/bash
/usr/bin/helpkit-docker.sh --rails-console <<EOF
Time.now.strftime("%d/%m/%Y %H:%M") 
EOF

错误:输入设备不是 TTY

我希望从 rails 控制台获取时间并显示在 shell 终端中

标签: ruby-on-railsshell

解决方案


我相信最好的方法是创建一个运行您想要的 ruby​​ 代码的 ruby​​ 脚本,然后在您的 shell 脚本中使用 调用它rails runner,如下所示:

#!/bin/bash

rails runner script/myscript.rb

在你的脚本中

puts Time.now.strftime("%d/%m/%Y %H:%M")

推荐阅读