2

我有以下 noobie 类:

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

属于该控制器的接口基本上从输入框读取数据并将其数据路由到 shell 语句。它有效,但没有我想要的那么酷。

例如,我可以使用' ls ',没有问题。但是,当我创建更长的命令(例如“ ls -l ”或“ ruby -v ”)时,几乎就像什么都没发生一样。任何人的线索?

谢谢!

4

1 回答 1

3

问题在于这一行中的双引号:

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

如果你输入ruby​​-v,那将被执行,但如果你输入"ruby -v",那将会失败,因为没有名为"ruby -v"的可执行文件,因为只有ruby​​ 而退出。删除引号,它将起作用。

于 2011-02-26T20:40:34.600 回答