【问题标题】:ruby $:.unshift File.dirname(__FILE__)红宝石 $:.unshift File.dirname(__FILE__)
【发布时间】:2012-02-11 06:39:13
【问题描述】:

我在许多 ruby​​ 脚本中经常看到这一点,但不确定它的含义:

$:.unshift File.dirname(__FILE__)

【问题讨论】:

标签: ruby


【解决方案1】:

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

【讨论】:

  • 并先添加此目录,使其优先于其他目录。对吗?
【解决方案2】:

另一个例子是:

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

AwsInventory::CLI.start(ARGV)

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

【讨论】:

    【解决方案3】:

    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

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

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多