我在许多ruby脚本中看到了很多,但不确定它的含义:
$:.unshift File.dirname(__FILE__)
答案 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
答案 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)