2010-05-27 3 views
2

je besoin de savoir ce qui était dans mon chemin de charge Ruby, donc je l'ai fait:

$ ruby -e "puts $LOAD_PATH" 

Il n'a pas imprimer quoi que ce soit, que je ne attends. J'ai donc essayé ceci:

$ 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 
. 

Pourquoi le second me donne-t-il la sortie attendue et le premier pas? Ne devraient-ils pas être les mêmes? Je l'ai juste essayé en irb, et j'ai obtenu les résultats que j'attendais.

C'est ma version Ruby, au cas où il fait une différence:

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

Répondre

5

Ils ne sont pas. Essayez d'exécuter cette commande:

$ ruby -e 'puts $LOAD_PATH' 

qui ne fait pas shell étendre $LOAD_PATH en raison de l'utilisation de ' au lieu de ".

+0

Gah! Cela fait parfaitement sens. Je suppose que c'est la première fois que j'ai utilisé un global en faisant 'ruby -e'. :) –

Questions connexes