2

私は次の初心者クラスを持っています:

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 」などの長いコマンドを作成すると、実際には何も起こらなかったように見えます。誰か手がかり?

ありがとう!

4

1 に答える 1

3

問題は、次の行の二重引用符にあります。

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

ruby-vと入力すると実行されますが、 と入力すると、 「ruby -v」"ruby -v"という実行可能ファイルがなく、 ruby​​ しかないため終了するため、失敗します。引用符を削除すると、機能します。

于 2011-02-26T20:40:34.600 に答える