Интерактивный механизм оболочки с MacRuby / XCode - PullRequest
2 голосов
/ 26 февраля 2011

У меня есть следующий класс 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

Интерфейс, который принадлежит этому контроллеру, в основном читает из поля ввода и направляет свои данные в оператор оболочки.Это работает, но не так круто, как хотелось бы.

Я могу использовать, например, ' ls ', без проблем.Однако, когда я создаю более длинные команды, такие как ' ls -l ' или ' ruby ​​-v ', это почти как будто ничего не произошло.Кто-нибудь знает?

Спасибо!

1 Ответ

3 голосов
/ 26 февраля 2011

Проблема заключается в двойных кавычках в этой строке:

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

Если вы введете ruby-v , это будет выполнено, но если вы введете "ruby -v", этопотерпит неудачу, потому что ни один исполняемый файл с именем "ruby -v" не будет завершен, поскольку существует только ruby ​​.Удалите цитаты, и это будет работать.

...