什么';在powershell中定义字符串时,单引号和双引号的区别是什么

什么';在powershell中定义字符串时,单引号和双引号的区别是什么,powershell,Powershell,一直困扰我的简单问题:在powershell中,我可以这样定义字符串: $s1 = "Boogety boo" 或 解释器有什么不同吗?双引号允许变量扩展,而单引号不允许: PS C:\Users\Administrator> $mycolor="red" PS C:\Users\Administrator> write-output -inputobject 'My favorite color is $mycolor' My favorite color is $mycolor

一直困扰我的简单问题:在powershell中,我可以这样定义字符串:

$s1 = "Boogety boo"


解释器有什么不同吗?

双引号允许变量扩展,而单引号不允许:

PS C:\Users\Administrator> $mycolor="red"
PS C:\Users\Administrator> write-output -inputobject 'My favorite color is $mycolor'
My favorite color is $mycolor
资料来源:


(我知道1.0版,但原理仍然相同)

这并不是一个更好的答案。这是另一种说法

撇号和引号之间的变量展开与UNIX shell(sh、ksh、bash)上的变量展开相同。使用撇号将使字符串保持原样,而不处理任何转义

PS C:\Users\lit> $x = "`t"
PS C:\Users\lit> $x

PS C:\Users\lit> Write-Output "now${x}is"
now     is
PS C:\Users\lit> $x = '`t'
PS C:\Users\lit> $x
`t
PS C:\Users\lit> Write-Output "now${x}is"
now`tis
PS C:\Users\lit> $word = "easy"
PS C:\Users\lit> "PowerShell is $word"
PowerShell is easy
PS C:\Users\lit> 'PowerShell is $word'
PowerShell is $word

onteria_uu所指的变量展开式也称为“”。您还可以将插值视为“连接的一个特殊实例”,如所述。另请参阅:Jeffrey Snover,其中详细介绍了如何将变量与字符串一起使用。一般来说,UNIX/Linux shell的工作方式与引用相同。
PS C:\Users\lit> $x = "`t"
PS C:\Users\lit> $x

PS C:\Users\lit> Write-Output "now${x}is"
now     is
PS C:\Users\lit> $x = '`t'
PS C:\Users\lit> $x
`t
PS C:\Users\lit> Write-Output "now${x}is"
now`tis
PS C:\Users\lit> $word = "easy"
PS C:\Users\lit> "PowerShell is $word"
PowerShell is easy
PS C:\Users\lit> 'PowerShell is $word'
PowerShell is $word