首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令行选项

命令行选项
EN

Stack Overflow用户
提问于 2013-01-11 09:00:52
回答 3查看 442关注 0票数 4

我对Ruby命令行选项感到困惑。-C dir-X dir都删除目录,但是它们之间有什么区别呢?

  • -x [dir]-X dir有什么不同?
  • -I dir是做什么的(我知道它添加了dir作为加载库的目录)?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-11 09:50:33

让我们在主目录中创建一个test.rb文件,如下所示:

代码语言:javascript
复制
hello
#!/usr/bin/ruby
p "here"

现在,如果我们尝试运行它:

代码语言:javascript
复制
ruby -C /home/my_home test.rb

这意味着将工作目录更改为/home/my_home并运行test.rb,您将得到一个错误:

代码语言:javascript
复制
test.rb:1:in `<main>': undefined local variable or method `hello' for main:Object (NameError)

如果我们用:

代码语言:javascript
复制
ruby -x /home/my_home test.rb

我们将得到“这里”打印,没有错误。在-x和-C之间的主要区别是-x删除了#!/usr/bin/ruby行之前的所有内容。在使用-x时,您也不必将目录设置为cd。因为-x的主要目的是删除行,如果需要的话,它只包含-C功能。

代码语言:javascript
复制
cd /home/my_home; ruby -x test.rb

看(红宝石-救命)

  • 在执行脚本之前,将-Cdirectory cd转到目录
  • -xdirectory删除#!ruby之前的文本,或者cd到目录

至于-I。您可以提供ruby将搜索您执行或需要的文件的目录。

代码语言:javascript
复制
ruby -x test.rb

除非您在/home/my_home中,否则Ruby不会找到test.rb文件。但是如果添加-I,ruby也会在"/home/my_home“中查找test.rb。

代码语言:javascript
复制
ruby -x -I/home/my_home test.rb

与-C的不同之处在于它不会在执行之前更改目录,而只是在那里搜索文件。

票数 4
EN

Stack Overflow用户

发布于 2013-01-11 09:18:09

-C和-X选项执行相同的工作(在执行之前更改目录)。没有什么不同。

-I选项用于向$LOAD_PATH添加路径。

例如:假设在my_print_class.rb:(~/my_lib/my_print_class.rb)目录my_lib中有名为my_print_class.rb的ruby文件

代码语言:javascript
复制
class MyPrintClass
   def self.my_print(str)
     puts str
   end
end

现在你家里有my_call.rb了。

~/我的电话.my:

代码语言:javascript
复制
 require 'my_print_class'
 MyPrintClass.my_print("Hello world")

为此,您需要my_print_class的路径,所以使用ruby -I my_lib my_call.rb

options.htm

票数 2
EN

Stack Overflow用户

发布于 2013-01-11 09:28:11

man ruby或一些在线文档中可以看到,-C-X是相同的。

-I将在红宝石LOAD_PATH中添加一些dir。例如,我有./a/my.rb和‘./test.rb’,如下所示:

代码语言:javascript
复制
# ./a/my.rb
def hello
  puts 'hello from a/my'
end

# ./test.rb
require 'my'
hello       

我执行ruby -I ./a test.rb。这将打印hello from a/my。如果没有-I,ruby将报告一个错误:cannot load such file -- my,因为./a不在当前的LOAD_PATH中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14274693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档