什么是$$和$ ^有用吗?

问题描述 投票:1回答:1

在PowerShell中,help about_Automatic_Variables给出了足够简单的定义,但没有提供它们如何有用的示例:

$$包含会话收到的最后一行中的最后一个标记。

$^包含会话收到的最后一行中的第一个标记。

为什么这些第一个/最后一个令牌足够有用来证明这样的语言特征?

它与TAB完成有关吗?

powershell
1个回答
2
投票

这些来自他们在Unix shell中的表兄弟(see !! in this answer)。它们在脚本中没用,但在将PowerShell用作shell时它们很有用[Citation Needed]。

例如:

C:\Users\Briantist> Get-Service Workstation
C:\Users\Briantist> Start-Service $$

它们使您不必再次键入最后一个令牌。长路径或其他复杂的令牌可能很难打字。

$^类似,它允许您重用第一个令牌:

C:\windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -command '[Environment]::Is64BitProcess'
# Run a 32-bit version of powershell and test that it's not 64 bit
$^ -command '<# an actual command you wanted to run in 32 bit #>'

我的猜测是,当语言最初被设计时,这些似乎更有用,但我个人认为它们最终没有那么有用。

因为从一个命令到另一个命令的管道在PowerShell中通常更惯用(并且在某些方面和情况下比在Unix中更广泛地使用),$$的第一个示例可能更像是这样:

Get-Service Workstation

(看到输出,使用↑在线上获得上一个命令),然后:

Get-Service Workstation | Start-Service
© www.soinside.com 2019 - 2024. All rights reserved.