PowerShell哈希表:如何从K8s Pod环境变量中取值
解决方法
因为$hash["service-testurl"].spec.template.spec.containers.env是System.Object[]类型的数组,每个元素是包含name和value属性的独立对象,不能直接通过name["ADDR"]这种方式索引。你需要先筛选出name等于"ADDR"的对象,再提取它的value。
直接用以下PowerShell代码即可获取ADDR对应的环境变量值:
# 筛选出name为ADDR的环境变量对象,然后提取value $addrValue = $hash["service-testurl"].spec.template.spec.containers.env | Where-Object { $_.name -eq "ADDR" } | Select-Object -ExpandProperty value
如果确定数组中只会有一个name为ADDR的项,也可以简化写法:
$addrValue = ($hash["service-testurl"].spec.template.spec.containers.env | Where-Object { $_.name -eq "ADDR" }).value
补充说明
Where-Object { $_.name -eq "ADDR" }:从数组中筛选出name属性等于"ADDR"的对象Select-Object -ExpandProperty value:将筛选出的对象的value属性展开为直接值- 第二种写法利用PowerShell的属性访问特性,当筛选结果是单个对象时,直接通过
.value获取属性值
内容的提问来源于stack exchange,提问作者wolfdebs
相关产品推荐
相关产品推荐

