我想弄清楚如何使用命令行开关-r。
我的理解是,代码类型如下:
ruby -r*nameOfRequired*
我发现情况并非如此。当我输入上面的内容并按回车键时,终端会收到一个“输入语法结束”的提示,并且不会继续。
我错过了什么?在开关和所需文件的名称之间是否需要有一个空格?
谢谢你!
**编辑:**我目前正在阅读大卫A的《基础好的Rubyist》。我是在阅读关于命令行开关的部分时想到这个问题的。
说到这里,我创建了一个“test.rb”文件,包含:
puts Date.today
然后,在终端里,我输入了:
ruby -r date
我认为这将“需要"日期模块,然后使我能够运行“test.rb”文件,使用ruby test.rb(假设我在正确的目录中)。
相反,终端光标移动到一个新行,期待更多的输入。如果我需要澄清什么就告诉我。谢谢你,谢谢
3条答案
按热度按时间dkqlctbz1#
一般来说,
ruby
命令不会记录从一次运行到下一次运行的任何状态,因此无论何时运行它,都需要告诉它需要知道的所有信息。每当你运行它时,你需要告诉它要运行的主程序,否则它会希望你在标准输入上键入该程序。
-r
没有指定主程序。试试这个:
**这个答案的10周年更新:**当然,更正常的健壮做法是将
require 'date'
写在test.rb
文件的顶部附近,因此无论代码如何执行,它总是包含在内。nr9pn0ug2#
如果你只输入
ruby -r
module,Ruby就会加载这个模块,然后等待你输入需要这个模块的主程序。如果您只想运行模块而不做其他任何事情,您可以在不使用
-r
的情况下执行doruby
full-path-to-module,或ruby -r
module-e exit
,或ruby -r
module</dev/null
,或类似的操作。gz5pxeao3#
根据
ruby -h
:-rlibrary在执行脚本之前需要库
在没有给出脚本文件路径的情况下,它从stdin读取脚本。
尝试以下操作(当您给予
-e command
时,您可以省略脚本文件路径):