- OpenTofu 语言
- 函数
- pathexpand
pathexpand
函数
pathexpand
接收一个可能以 ~
段开始的文件系统路径,如果确实如此,则用当前用户的 home 目录路径替换该段。
此函数仅处理路径字符串,不访问文件系统本身。因此,它无法考虑符号链接等文件系统功能。
如果路径中的前导段不是 ~
,则返回给定的路径,不做修改。
如果在资源参数中使用此函数,如果同一配置由多个具有不同 home 目录路径的用户运行,或在不同的主机操作系统上使用,则会导致虚假的差异。我们建议仅对临时值使用此函数,例如在 connection
和 provisioner
块中查找 SSH 密钥等。
确定当前用户“home 目录”的规则因主机操作系统而异。
**对于 Unix 系统**,以下来源按优先级顺序进行查询
HOME
环境变量。- 运行
getent passwd
后跟 OpenTofu 进程 uid 的结果。 - 在
sh
中运行cd && pwd
的结果。
**对于 Windows 系统**,与 Unix 上的 home 目录概念并不完全相同,但以下来源按优先级顺序进行查询
HOME
环境变量。- 如果
HOMEDRIVE
和HOMEPATH
环境变量都已设置,则使用它们。 USERPROFILE
环境变量。
每个操作系统的具体规则可能会在将来的 OpenTofu 版本中发生变化。
示例
> pathexpand("~/.ssh/id_rsa")
/home/steve/.ssh/id_rsa
> pathexpand("/etc/resolv.conf")
/etc/resolv.conf