ruby $:。unshift File.dirname(__ FILE__)

时间:2012-02-11 06:39:13

标签: ruby

我在许多ruby脚本中看到了很多,但不确定它的含义:

$:.unshift File.dirname(__FILE__)

3 个答案:

答案 0 :(得分:49)

$:只是$LOAD_PATH的快捷方式。 __FILE__是脚本的相对路径。这会将当前脚本目录添加到加载路径。

答案 1 :(得分:11)

ruby​​带有一组预定义变量:

$: 该数组包含按加载或要求查找Ruby脚本和二进制模块的位置列表。它最初由任何-I命令行开关的参数组成,后跟默认的Ruby库,probabl“/ usr / local / lib / ruby​​”,后跟“。”,表示当前目录。 (助记符:冒号是PATH环境变量的分隔符。)

请点击此处了解更多信息: http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#colon

另一个链接: http://www.ruby-forum.com/topic/142378#631564

答案 2 :(得分:1)

另一个例子是:

$:.unshift(File.expand_path("../../lib", __FILE__))
require "aws-inventory"
require "aws_inventory/cli"

AwsInventory::CLI.start(ARGV)

确保当前目录包含在$ LOAD_PATH中,并调用类AwsInventory :: CLI.start(ARGV)