Ruby -如何在Ruby命令行工具中使用-r开关

enxuqcxy  于 12个月前  发布在  Ruby
关注(0)|答案(3)|浏览(101)

我想弄清楚如何使用命令行开关-r。
我的理解是,代码类型如下:

ruby -r*nameOfRequired*

我发现情况并非如此。当我输入上面的内容并按回车键时,终端会收到一个“输入语法结束”的提示,并且不会继续。
我错过了什么?在开关和所需文件的名称之间是否需要有一个空格?
谢谢你!

**编辑:**我目前正在阅读大卫A的《基础好的Rubyist》。我是在阅读关于命令行开关的部分时想到这个问题的。

说到这里,我创建了一个“test.rb”文件,包含:

puts Date.today

然后,在终端里,我输入了:

ruby -r date

我认为这将“需要"日期模块,然后使我能够运行“test.rb”文件,使用ruby test.rb(假设我在正确的目录中)。
相反,终端光标移动到一个新行,期待更多的输入。如果我需要澄清什么就告诉我。谢谢你,谢谢

dkqlctbz

dkqlctbz1#

一般来说,ruby命令不会记录从一次运行到下一次运行的任何状态,因此无论何时运行它,都需要告诉它需要知道的所有信息。
每当你运行它时,你需要告诉它要运行的主程序,否则它会希望你在标准输入上键入该程序。-r没有指定主程序。
试试这个:

ruby -rdate test.rb

**这个答案的10周年更新:**当然,更正常的健壮做法是将require 'date'写在test.rb文件的顶部附近,因此无论代码如何执行,它总是包含在内。

nr9pn0ug

nr9pn0ug2#

如果你只输入ruby -rmodule,Ruby就会加载这个模块,然后等待你输入需要这个模块的主程序。
如果您只想运行模块而不做其他任何事情,您可以在不使用-r的情况下执行do rubyfull-path-to-module,或ruby -rmodule-e exit,或ruby -rmodule</dev/null,或类似的操作。

gz5pxeao

gz5pxeao3#

根据ruby -h
-rlibrary在执行脚本之前需要库
在没有给出脚本文件路径的情况下,它从stdin读取脚本。
尝试以下操作(当您给予-e command时,您可以省略脚本文件路径):

ruby -r**nameOfRequired** -e ""

相关问题