2011-02-26 68 views
2

我有以下noobie类:交互式壳机制的MacRuby/XCode的

class CoreController < NSWindowController 
    attr_accessor :consoleOutput, :consoleInput, :command, :parsedcommand 

    def showInConsole_clicked(sender) 
    x = `"#{@consoleInput.stringValue()}"` 
    @consoleOutput.stringValue = x 
    @command.stringValue = @consoleInput.stringValue() 
    @parsedcommand.stringValue = x 
    end 

end 

属于该控制器基本上从一个输入框和路线它的数据到一个外壳语句读取的接口。它可以工作,但并不像我想要的那么酷。

例如,我可以使用'ls',没有问题。但是,当我创建更长的命令,如'ls -l'或'ruby​​ -v'时,几乎没有发生任何事情。任何人都有线索?

谢谢!

回答

3

问题是与该行的双引号:

x = `"#{@consoleInput.stringValue()}"` 

如果键入红宝石-V,将要执行的,但如果你键入"ruby -v",这将失败,因为没有可执行文件,称为“ruby -v”,因为只有ruby​​而退出。删除引号,它会起作用。

+0

甜!非常感谢! – Shyam 2011-02-26 20:49:35