本文簡要介紹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類。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。