it-source

powershell에서 문자열을 정의하기 위한 단일 따옴표와 이중 따옴표의 차이점은 무엇입니까?

criticalcode 2023. 7. 25. 21:07
반응형

powershell에서 문자열을 정의하기 위한 단일 따옴표와 이중 따옴표의 차이점은 무엇입니까?

저를 괴롭히는 간단한 질문들: 파워셸에서, 저는 문자열을 다음과 같이 정의할 수 있습니다.

$s1 = "Boogety boo"

또는

$s2 = '.net rocks'

통역사와 다른 점이 있습니까?

큰따옴표를 사용하면 변수를 확장할 수 있지만 작은따옴표를 사용하면 다음을 수행할 수 없습니다.

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은 알고 있지만 원리는 동일합니다)

이것은 더 나은 답이 되려고 노력하는 것이 아닙니다.그냥 다른 표현으로.

아포스트로피와 따옴표 사이의 변수 확장은 UNIX 셸(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

이 질문은 PowerShell 문서의 about_Quoting_Rules 기사에 직접 답이 있습니다.

이중 따옴표 문자열

큰따옴표로 묶인 문자열은 확장 가능한 문자열입니다.변수 이름 앞에 달러 기호($)는 문자열이 처리를 위해 명령으로 전달되기 전에 변수의 값으로 대체됩니다.

예:

$i = 5
"The value of $i is $i."

이 명령의 출력은 다음과 같습니다.

The value of 5 is 5.

따옴표로 묶은 문자열

단일 따옴표로 둘러싸인 문자열은 동사형 문자열입니다.문자열은 입력한 대로 정확히 명령으로 전달됩니다.대체가 수행되지 않습니다.예:

$i = 5
'The value of $i is $i.'

이 명령의 출력은 다음과 같습니다.

The value of $i is $i.

즉, 문자열을 기록된 상태로 유지하려면 따옴표를 사용합니다.변수를 삽입하려면 큰따옴표를 사용합니다($myVariable), 명령 실행 및 기타 평가 결과($($myList -join ', ')) 또는 특수 문자(`r,`n,`t,`a등).

언급URL : https://stackoverflow.com/questions/5967407/whats-the-difference-between-single-quote-and-double-quote-to-define-a-string-i

반응형