# BT.envs

## 功能

返回当前有效环境变量对象。

## 语法

```bt
BT.envs()
```

## 参数

| 参数 | 类型 | 必填 | 默认值 | 说明 |
| ------ | ------ | ------ | ------ | ------ |
| 无 | - | 否 | 无 | 不需要参数。 |

## 返回值

| 类型 | 说明 |
| ------ | ------ |
| Object | 返回 OS 环境变量与 BT 运行期 overlay 合并后的动态键值对象。字段规则见下方。 |

## 返回对象字段

`BT.envs()` 返回的是动态对象，不是固定结构对象。对象字段来自当前 OS 环境变量和 BT 运行期 overlay。

| 字段 | 类型 | 必定存在 | 说明 |
| ------ | ------ | ------ | ------ |
| 任意环境变量名 | String | 否 | 有效环境变量值。字段名就是环境变量名，例如 `PATH`、`BT_MODE`。变量不存在或被 `BT.remove_env(name)` 遮蔽时，该字段不存在，读取结果为 `empty`。 |

## 示例

```bt
BT.set_env('BT_MODE', 'dev')
envs = BT.envs()
result = envs.BT_MODE

// 输出：dev
print result
```

## 注意事项

- BT.envs() 会按需遍历 OS 环境变量，可能产生较多字符串分配。
- 已被 remove_env 删除标记遮蔽的变量不会出现在返回对象中。
- `BT.set_env(name, value)` 写入的 overlay 会覆盖同名 OS 环境变量。
