$LOAD_PATH 和 $: 有什么不同?

发布于 2024-09-03 21:51:02 字数 692 浏览 3 评论 0原文

我需要知道 Ruby 加载路径中有什么,所以我这样做了:

$ ruby -e "puts $LOAD_PATH"

它没有打印出任何内容,这是我没有所期望的。所以我尝试了这个:

$ ruby -e "puts $:"
/usr/local/lib/site_ruby/1.8
/usr/local/lib/site_ruby/1.8/i486-linux
/usr/local/lib/site_ruby/1.8/i386-linux
/usr/local/lib/site_ruby
/usr/lib/ruby/vendor_ruby/1.8
/usr/lib/ruby/vendor_ruby/1.8/i486-linux
/usr/lib/ruby/vendor_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i486-linux
/usr/lib/ruby/1.8/i386-linux
.

为什么第二个给了我预期的输出,而第一个却没有?它们不应该是一样的吗?我刚刚在 irb 中尝试了一下,得到了我期望的结果。

这是我的 Ruby 版本,以防有所不同:

$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

I needed to know what was in my Ruby load path, so I did this:

$ ruby -e "puts $LOAD_PATH"

It didn't print anything out, which I didn't expect. So I tried this:

$ ruby -e "puts $:"
/usr/local/lib/site_ruby/1.8
/usr/local/lib/site_ruby/1.8/i486-linux
/usr/local/lib/site_ruby/1.8/i386-linux
/usr/local/lib/site_ruby
/usr/lib/ruby/vendor_ruby/1.8
/usr/lib/ruby/vendor_ruby/1.8/i486-linux
/usr/lib/ruby/vendor_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i486-linux
/usr/lib/ruby/1.8/i386-linux
.

Why does the second one give me the expected output and the first one doesn't? Shouldn't they be the same? I just tried it in irb, and I got the results I expected.

This is my Ruby version, in case it makes a difference:

$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情话已封尘 2024-09-10 21:51:02

他们不是。尝试运行此命令:

$ ruby -e 'puts $LOAD_PATH'

由于使用 ' 而不是 ",这不会使 shell 扩展 $LOAD_PATH

They are not. Try running this command:

$ ruby -e 'puts $LOAD_PATH'

which doesn't make shell expand $LOAD_PATH due to use of ' instead of ".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文