本文简要介绍ruby语言中 ENV类 的用法。
ENV 是环境变量的 hash-like 访问器。
与操作系统的交互
ENV 对象与操作系统的环境变量交互:
-
当您在
ENV中获取名称的值时,将从当前环境变量中检索该值。 -
当您在
ENV中创建或设置 name-value 对时,名称和值会立即在环境变量中设置。 -
当您删除
ENV中的 name-value 对时,它会立即从环境变量中删除。
名称和值
通常,名称或值是 String 。
有效的名称和值
每个名称或值必须是以下之一:
无效的名称和值
一个新名字:
-
可能不是空字符串:
ENV[''] = '0' # Raises Errno::EINVAL (Invalid argument - ruby_setenv()) -
可能不包含字符
"=":ENV['='] = '0' # Raises Errno::EINVAL (Invalid argument - ruby_setenv(=))
新名称或值:
-
可能不是不响应 #to_str 的非字符串:
ENV['foo'] = Object.new # Raises TypeError (no implicit conversion of Object into String) ENV[Object.new] = '0' # Raises TypeError (no implicit conversion of Object into String) -
可能不包含 NUL 字符
"\0":ENV['foo'] = "\0" # Raises ArgumentError (bad environment variable value: contains null byte) ENV["\0"] == '0' # Raises ArgumentError (bad environment variable name: contains null byte) -
可能没有 ASCII-incompatible 编码,例如 UTF-16LE 或 ISO-2022-JP:
ENV['foo'] = '0'.force_encoding(Encoding::ISO_2022_JP) # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP) ENV["foo".force_encoding(Encoding::ISO_2022_JP)] = '0' # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
关于排序
ENV 按操作系统环境变量中的顺序枚举其名称/值对。因此 ENV 内容的顺序是OS-dependent,并且可能是不确定的。
这将出现在:
-
ENV方法返回的Enumerator。 -
ENV.keys、ENV.values或ENV.to_a返回的Array。 -
ENV.inspect返回的String。 -
ENV.key返回的名称。
关于示例
ENV 中的某些方法会返回 ENV 本身。通常,有许多环境变量。在此处的示例中显示大的 ENV 没有用,因此大多数示例片段都是从重置 ENV 的内容开始的:
-
ENV.replace用新的条目集合替换ENV。
相关用法
- Ruby ENV.empty?用法及代码示例
- Ruby ENV.delete_if用法及代码示例
- Ruby ENV.inspect用法及代码示例
- Ruby ENV.delete用法及代码示例
- Ruby ENV.to_s用法及代码示例
- Ruby ENV.to_h用法及代码示例
- Ruby ENV.clear用法及代码示例
- Ruby ENV.length用法及代码示例
- Ruby ENV.key用法及代码示例
- Ruby ENV.reject用法及代码示例
- Ruby ENV.values用法及代码示例
- Ruby ENV.select!用法及代码示例
- Ruby ENV.freeze用法及代码示例
- Ruby ENV.rassoc用法及代码示例
- Ruby ENV.invert用法及代码示例
- Ruby ENV.value?用法及代码示例
- Ruby ENV.select用法及代码示例
- Ruby ENV.each_key用法及代码示例
- Ruby ENV.reject!用法及代码示例
- Ruby ENV.keys用法及代码示例
- Ruby ENV.include?用法及代码示例
- Ruby ENV.each_value用法及代码示例
- Ruby ENV.except用法及代码示例
- Ruby ENV[name] =用法及代码示例
- Ruby ENV.values_at用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 ENV类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
