$LOAD_PATH 和 $: 有什么不同?
我需要知道 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
他们不是。尝试运行此命令:
由于使用
'
而不是"
,这不会使 shell 扩展$LOAD_PATH
。They are not. Try running this command:
which doesn't make shell expand
$LOAD_PATH
due to use of'
instead of"
.