2017-10-28 64 views
0

我是ruby的新手,我正在編寫一個非常基本的Rakefile。它包含一個類Installer,有一個方法shell它調用sh這樣的:不能在我的Rakefile的類中調用「sh」

class Installer 
    def shell(command) 
    sh command 
    end 
end 

當我運行它時,它拋出

NoMethodError: undefined method `sh' for #<Installer:0x00007ffde8098b78>` 

我做了一些研究,看看出了什麼問題,但大多數類似的錯誤似乎是框架/庫相關的,而我的問題似乎是從方法內部調用sh是不可能的。

這是問題嗎?如果是這樣,有什麼可以怎麼做(考慮到我想要的程序崩潰,如果命令失敗,(我相信系統或反引號不會在這裏幫助)。

回答

0

Kernel模塊system方法如果命令返回false從shell中運行返回一個非零值。

irb(main):002:0> system('exit 1') 
=> false 

irb(main):003:0> system('exit 0') 
=> true 

您可以用這樣的一種方式來退出從你的shell命令的非零的回報。

相關問題