Чем отличаются $ LOAD_PATH и $: - PullRequest
3 голосов
/ 27 мая 2010

Мне нужно было знать, что было в моем пути загрузки 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]

1 Ответ

6 голосов
/ 27 мая 2010

Это не так. Попробуйте выполнить эту команду:

$ ruby -e 'puts $LOAD_PATH'

, который не расширяет оболочку $LOAD_PATH из-за использования ' вместо ".

...