You need to enable JavaScript to run this app. 如何在Linux的PowerShell REPL中打印bash导出的环境变量?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux的PowerShell REPL中打印bash导出的环境变量?

报错原因

你执行Get-Variable foo找不到对应值,核心是混淆了PowerShell的两类变量存储逻辑:

  • Get-Variable 默认搜索的是PowerShell自身作用域内的普通变量、内置自动变量,这类变量存放在专用的Variable:虚拟驱动器下
  • 你在bash里通过export导出的foo属于进程环境变量,pwsh启动时会把这类从父进程继承的环境变量统一挂载在Env:虚拟驱动器下,完全不在Get-Variable的默认搜索范围内
  • 你之前执行Get-Variable HOME -valueOnly能返回结果,是因为HOME是PowerShell自带的内置自动变量,启动时就被映射到PowerShell的常规变量作用域中,和环境变量的存储通道是相互独立的,才会被Get-Variable检索到
打印对应环境变量的正确方式

在你当前启动的pwsh会话里,用以下任意一种方法都可以直接输出foo的值:

  • 最简洁的常用写法:直接输入 $env:foo,控制台会直接显示对应的值bar
  • 通过驱动器查询:输入 Get-Item Env:foo | Select-Object -ExpandProperty Value,可以只输出变量的实际值;如果不加重定向,会返回变量的完整名称和属性信息
  • 通过.NET原生方法查询:输入 [Environment]::GetEnvironmentVariable('foo'),同样可以获取到环境变量的值
注意事项

只有在bash里通过export命令导出的变量,才会被作为环境变量传递给后续启动的pwsh子进程;如果只是在bash里临时定义了变量、没执行export,哪怕在bash里用echo能打印出值,pwsh作为子进程也是完全无法读取到这个变量的。

内容的提问来源于stack exchange,提问作者Nicholas Saunders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.14 06:36:00