【发布时间】:2012-02-11 06:39:13
【问题描述】:
我在许多 ruby 脚本中经常看到这一点,但不确定它的含义:
$:.unshift File.dirname(__FILE__)
【问题讨论】:
标签: ruby
我在许多 ruby 脚本中经常看到这一点,但不确定它的含义:
$:.unshift File.dirname(__FILE__)
【问题讨论】:
标签: ruby
$: 只是$LOAD_PATH 的快捷方式。 __FILE__ 是脚本的相对路径。这会将当前脚本目录添加到加载路径。
【讨论】:
另一个例子是:
$:.unshift(File.expand_path("../../lib", __FILE__))
require "aws-inventory"
require "aws_inventory/cli"
AwsInventory::CLI.start(ARGV)
确保当前目录包含在 $LOAD_PATH 中并调用 AwsInventory::CLI.start(ARGV) 类
【讨论】:
ruby 带有一组预定义的变量:
$: 该数组包含通过 load 或 require 查找 Ruby 脚本和二进制模块的位置列表。它最初由任何 -I 命令行开关的参数组成,后跟默认的 Ruby 库,可能是“/usr/local/lib/ruby”,然后是“.”,表示当前目录。 (助记符:冒号是PATH环境变量的分隔符。)
更多信息请看这里: http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#colon
【讨论】: