Не могу вызвать "sh" внутри класса на моем Rakefile
Я новичок в ruby, и я пишу довольно простой Rakefile. Содержит класс Installer
у этого есть метод shell
какие звонки sh
как это:
class Installer
def shell(command)
sh command
end
end
Когда я запускаю его, он бросает
NoMethodError: undefined method `sh' for #<Installer:0x00007ffde8098b78>`
Я провел некоторое исследование, чтобы выяснить, что не так, но большинство подобных ошибок, по-видимому, связано с фреймворком / библиотекой, в то время как моя проблема заключается в том, что просто невозможно вызвать sh
изнутри метода.
Это проблема? если это так, какие варианты у меня есть (учитывая, что я хочу, чтобы программа аварийно завершилась, если команда не выполнена (что, я считаю, система или обратные пометки здесь не помогут).
2 ответа
Изменить sh
обращение к Rake.sh
, По крайней мере, мне показалось, что это работает.
system
метод из Kernel
модуль возвращает false, если команда, запущенная из оболочки, возвращает ненулевое значение.
irb(main):002:0> system('exit 1')
=> false
irb(main):003:0> system('exit 0')
=> true
Вы можете использовать это как способ выхода из ненулевых возвратов из команд оболочки.