【问题标题】:Execute ruby script without .rb extension?执行没有 .rb 扩展名的 ruby​​ 脚本?
【发布时间】:2011-03-19 23:16:57
【问题描述】:

我知道如果你添加一个 shebang,你可以在文件名前不输入“ruby”来执行一个脚本,但是你如何在没有文件扩展名的情况下执行它,所以你可以只使用“filename”而不是“filename.rb” .

而且,部署 Ruby 程序的规范/最佳实践是什么,即文件位置和路径等?

【问题讨论】:

  • “那么,部署 Ruby 程序的规范/最佳实践是什么,即文件位置和路径等?”这应该作为一个单独的问题提出,因为它与原始问题没有密切关系。

标签: ruby linux path


【解决方案1】:

在 linux 中,关于解释器的信息通常取自 shebang 行,而不是扩展名。这就是为什么您基本上不需要扩展名(但通常需要文件属性中的执行位)。

我不知道 Ruby 中关于文件命名的传统是什么(是否认为包含扩展名是一件好事),但遵循它通常是个好主意(不管它是什么)。

【讨论】:

  • Okie doke 所以只需删除 .rb?
  • 遵循一般惯例或任何您认为正确的方式。扩展名不是强制性的,您可以随意添加(或不添加)。
  • 这当然很好,但这意味着我的文本编辑器不会选择使用哪种语法突出显示。所以也许只是使用“myfile”作为调用“otherfile.rb”的包装器“?
  • 你的编辑不是从shebang line上取信息吗?无论如何,如果您觉得方便的话,为主程序保留 .rb 扩展名并没有错(除了直接将语言作为名称的一部分公开,您可能认为这在美学上是错误的)。同样,删除扩展名也没有什么问题(除非您的文本编辑器不知道如何突出显示它)。
  • @ Daniel Upton,“我的文本编辑器不会选择使用哪种语法突出显示。”它比这更重要。所有操作系统现在都以一种或另一种方式查看扩展名,并使用它来帮助决定应该使用哪些应用程序来打开文件。 Mac OS 多年来一直使用忽略扩展的单独机制,但是当 Mac OS 10 发布时,由于 BSD/Unix 基础,它们也不得不开始尊重扩展。因此,删除扩展可能会导致奇怪/不受欢迎的行为。与其担心扩展,不如学习在命令行中使用单词完成。
猜你喜欢
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多