【问题标题】:Ruby file won't run in Max OSX Terminal. syntax error, unexpected end-of-input, expecting keyword_endRuby 文件不会在 Max OSX 终端中运行。语法错误,意外的输入结束,期待关键字结束
【发布时间】:2014-10-31 19:09:38
【问题描述】:

使用:

  • RVM 1.26.0
  • Ruby 2.1.4
  • OSX 小牛队 10.9.5
  • 文本编辑
  • 终端

我正在编写学习 Ruby 编码 The Hard Way 教程。这是第一个程序。

puts "Hello World!"
puts "Hello Again"
puts "I like typing this."
puts "This is fun."
puts "Yay! Printing."
puts "I'd must rather you 'not'."
puts 'I "said" do not touch this.'

这就是终端中出现的内容。

ex1.rb:7: syntax error, unexpected end-of-input, expecting keyword_end
puts 'I "said" do not touch this."

我有一个 Nitrious.io 帐户,文件可以在上面完美运行。我一直在寻找答案,但所有其他问题都涉及更复杂的程序,其解决方案似乎不适用于如此简单的事情。据我了解,终端应该只打印这些而没有问题。非常感谢任何帮助!

【问题讨论】:

  • 问题出在您的系统上,因为代码在我的系统上运行良好。您没有展示您如何尝试运行代码,这可能是一个线索。另外,我建议不要使用 TextEdit 来编辑代码。它可以做到这一点,但它不具备您长期需要的功能。我强烈推荐vim 和/或Sublime Text。它们是开发的中流砥柱,可以在多种操作系统上运行,包括 Mac OS。在 Mac OS 上使用 macvim。 Sublime 更面向鼠标,但 macvim 也做得不错。
  • 我通过键入文件名ruby ex1.rb 来运行代码。我关闭了 TextWrangler 并在那里重新编写了它。有效!它仍然不会从用 TextEdit 编写的文件运行。为什么它在 TextEdit 中不起作用是我非常想知道的……只是因为我觉得它很有趣!

标签: ruby terminal osx-mavericks


【解决方案1】:

如果您准确地复制粘贴了代码,那么您的问题就是引号。它们需要成为标准的 " 而不是你所拥有的 (")。当从自动转换为 " 以打开/关闭双引号的博客中复制粘贴时,这种情况总是会发生。

【讨论】:

  • 我自己打字,不是复制粘贴。否则有什么意义,对吧? :D 你提到的格式化是由 Stack Overflow 自动完成的
  • 看起来 TextEdit 现在默认为富文本文档,也许这是您的问题?当我尝试在 textedit 中输入您的代码时,引号会自动更改为不正确的。
  • 感谢您加倍努力!但是您可以在“格式”下拉菜单下选择“制作纯文本”。当它处于富文本模式时,您无法使用 .rb 扩展名进行保存。我还在 TextWrangler 中重写了它,但它仍然没有用。我觉得这可能是我的系统有问题。
  • 话虽如此,我对编码还太陌生,不知道这个问题可能是什么,哈哈。
【解决方案2】:

TextEdit 正在尝试转换您的引号。它将"foo" 转换为“foo”,即\x201cfoo\x201d

它也不提供文本格式,只有 RTF 和 Word 格式,因此不适合编程。

【讨论】:

  • 你是对的!我禁用了智能引号,现在它可以工作了。但是,它确实提供了一种可配置的纯文本格式。它可能不是最好的选择,但我喜欢学习如何使用最坏的选择,以便我可以欣赏更高级的选择。谢谢!
【解决方案3】:

在使用 TextEdit 中的首选项后,我找到了答案。在首选项>新文档中,我取消选中右下角的“智能引号”和“智能破折号”框。现在可以了。但我非常感谢您的帮助并对我的问题表现出兴趣!

【讨论】:

  • 这两个需要关闭是正确的,但我建议关闭几乎所有选项。从长远来看,它为帮助您所做的事情越少越好。文字处理编辑器,也就是 TextEdit,与 vim、emacs、Sublime Text 等优秀的文本编辑器几乎没有共同点。
【解决方案4】:

尝试使用 %(Hello World) 即使我遇到了字符串分隔符的类似问题。现在转向崇高的文本

【讨论】:

    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2016-05-14
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多