В чем разница между одинарной и двойной кавычкой для определения строки в powershell - PullRequest
21 голосов
/ 11 мая 2011

Простые вопросы, которые меня беспокоили: В PowerShell я могу определять строки следующим образом:

$s1 = "Boogety boo"

или

$s2 = '.net rocks'

Есть ли разница в интерпретаторе?

Ответы [ 2 ]

27 голосов
/ 11 мая 2011

Двойные кавычки допускают расширение переменных, в то время как одинарные кавычки - нет:

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

Источник: http://www.techotopia.com/index.php/Windows_PowerShell_1.0_String_Quoting_and_Escape_Sequences

(я знаю версию 1.0, но принцип все тот же)

4 голосов
/ 12 января 2017

Это не попытка быть лучшим ответом.Просто еще один способ сказать это.

Расширение переменной между апострофами и кавычками такое же, как в оболочках UNIX (sh, ksh, bash).Использование апострофов примет символьную строку как есть, без обработки escape-символов.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...