PowerShell自动变量$HOME和环境变量$Env:HOME为什么有区别?

PowerShell自动变量$HOME和环境变量$Env:HOME为什么有区别?

我们的组织通过 Active Directory 将每个用户的主文件夹映射到网络共享。这会导致 Git 出现问题,因为 Git 需要找到用户主文件夹中的全局用户配置文件,而对于我来说,由于此设置,该文件夹是一个映射驱动器。git config --global --list抛出fatal: unable to read config file 'H://.gitconfig': No such file or directory

在进行故障排除时,我发现$HOMEPowerShell 中的自动变量被设置为C:\Users\username$Env:HOME被设置为映射驱动器。

为什么 PowerShell 的自动变量不同?我假设 Active Directory 将$Env:HOME变量设置为映射驱动器;对吗?如果是这样,不应该$HOME使用相同的路径吗?

答案1

结论;$HOME是跨平台兼容性的首选

根据 SO 帖子获取主目录

引用当前用户主目录的最可靠方法是使用自动变量 $HOME

如果你尝试使用环境变量 $env:HOME,Windows 与 Unix 平台之间的差异将显现出来

相关内容