首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中计算变量中的变量

在Powershell中计算变量中的变量
EN

Stack Overflow用户
提问于 2013-12-03 00:21:30
回答 1查看 9.5K关注 0票数 1

我有以下变量:

代码语言:javascript
复制
[string]$eth_netmask = "ext_netmask"
[string]$ext_netmask = "255.255.252.0"

$($eth_netmask)正在返回ext_netmask。我期待着255.255.252.0

我做错了什么?

谢谢你提前提供帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-03 01:12:27

命令$eth_netmask返回名为eth_netmask的变量的值。表达式$(something)与变量无关,而是在计算语句的其余部分之前计算括号的内容。这意味着语句$($eth_netmask)将分两个步骤进行计算: 1:$($eth_netmask)计算结果为命令"ext_netmask" 2:"ext_netmask"计算结果为将ext_netmask打印到输出。

这种格式是不必要的,因为变量通常在命令的其余部分之前被解析。我的建议是,如果有其他选择,根本不必这样做。将这种迂回引用放入代码中只会导致问题。但是,如果由于某种原因无法避免,则可以引用一个变量,该变量的名称存储在另一个变量中。

代码语言:javascript
复制
[string]$eth_netmask = "ext_netmask"
[string]$ext_netmask = "255.255.252.0"

Get-Variable -Name $eth_netmask -ValueOnly

这是$(something)语法变得有用的地方。如果您需要使用刚才在另一个命令中返回的值,比如该值是您试图ping的ip,则可以执行如下操作:

代码语言:javascript
复制
Test-Connection $(Get-Variable -Name $eth_netmask -ValueOnly)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20340525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档