2017-10-28 63 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命令的非零的回报。

相关问题