Как запускать команды на консоли ruby-on-rails внутри скрипта bash? - PullRequest
1 голос
/ 24 октября 2019

Я хотел бы знать, как запускать команды ruby ​​в ruby ​​на консоли rails внутри сценария оболочки? Для ясности: у меня есть сценарий оболочки, который подключается к ruby ​​на консоли rails, но не может запускать команды внутри консоли rails из сценария оболочки. Ниже приведен фрагмент кода.

Я успешно могу войти в консоль rails из сценария оболочки, но не могу предоставить команды ruby ​​внутри самого сценария оболочки.

Этот пример сценария позволяет мне войтив консоль rails:

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

Но когда я расширяю приведенный выше скрипт для запуска команд внутри консоли rails с помощью EOF, выдается ошибка:

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

Ошибка: устройство ввода неTTY

Я ожидаю, что время будет извлечено из консоли rails и отобразится в терминале оболочки

1 Ответ

1 голос
/ 24 октября 2019

Я считаю, что лучший способ - создать сценарий ruby, который запускает нужный код ruby, а затем в сценарии оболочки вы вызываете его, используя rails runner, например:

#!/bin/bash

rails runner script/myscript.rb

и в вашем сценарии

puts Time.now.strftime("%d/%m/%Y %H:%M")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...