我有以下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 </ strong>'或' ruby -v '时,它几乎就像没有发生任何事情一样。有人知道吗?
谢谢!
答案 0 :(得分:3)
问题在于此行中的双引号:
x = `"#{@consoleInput.stringValue()}"`
如果您输入 ruby-v ,则会执行该操作但如果您键入"ruby -v"
,则会失败,因为没有可执行文件名为“ruby -v” ,退出,因为只有红宝石。删除引号,它将起作用。