2011-02-26 50 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