PowerShell의 문자열 보간

  1. PowerShell의 변수란 무엇인가?
  2. Windows PowerShell에서의 문자열 보간
  3. PowerShell에서 환경 변수와 함께 문자열 보간하기
  4. PowerShell에서 이스케이프 문자와 함께 문자열 보간하기
  5. PowerShell에서 특수 문자가 포함된 변수를 사용한 문자열 보간
  6. PowerShell에서 서브 표현식 연산자를 사용한 문자열 보간
  7. 결론
PowerShell의 문자열 보간

PowerShell에서의 문자열 보간(string interpolation)은 변수 값, 표현식, 명령어를 문자열 안에 포함시켜 동적으로 문자열을 형식화할 수 있는 강력한 기능입니다. 이 포괄적인 가이드는 문자열 보간의 복잡한 요소들에 대해 깊이 있게 다루며, 이 기능의 자세한 통찰력, 예제 및 실제 응용 프로그램을 제공합니다.

문자열 보간은 문자열 안의 자리 표시자와 함께 변수의 값을 대체합니다. 또한, 문자열 보간 과정은 문자열 안에 변수의 값을 표시합니다.

Windows PowerShell 문자열 보간은 형식이 지정된 문자열을 만들기 위해 더 읽기 쉽고, 이해하기 쉬우며, 편리한 구문을 제공합니다. 이 기사는 Windows PowerShell에서 문자열 보간 시 변수 사용에 대해 논의할 것입니다.

PowerShell의 변수란 무엇인가?

Windows PowerShell 문자열 보간에 대해 논의하기 전에, 이를 달성하기 위한 중요한 요구 사항 중 하나인 Windows PowerShell 변수에 대해 먼저 논의해야 합니다.

PowerShell의 변수는 데이터 저장 용기로, 사용자가 정보를 저장하고 스크립트 실행 중에 이를 조작할 수 있게 해줍니다. 이들은 특정 값이나 객체를 나타내는 기호적 이름으로, PowerShell 스크립트 내에서 데이터에 참조하고 작업할 수 있는 방법을 제공합니다.

PowerShell에서 변수의 주요 측면:

선언 및 이름 지정

선언:

PowerShell에서 변수는 $ 기호 뒤에 이름을 붙여서 선언합니다.

예제:

$my_var = "Hello World!"

이름 지정 규칙:

  • 반드시 문자 또는 밑줄로 시작해야 합니다.
  • 문자, 숫자 및 밑줄을 포함할 수 있습니다.
  • 대소문자를 구분하지 않습니다($variable$Variable은 동일한 것을 참조합니다).

데이터 유형

동적 타이핑:

PowerShell은 동적 타이핑을 사용하며, 이를 통해 변수는 명시적인 유형 선언 없이도 다양한 유형의 데이터를 저장할 수 있습니다.

예제:

$number = 10
$text = "Sample text"

범위

변수는 다양한 범위를 가질 수 있으며, 이는 스크립트 내에서의 가시성과 접근성을 결정합니다.

로컬: 현재 범위 또는 함수에 제한됩니다.
스크립트: 현재 스크립트 전반에 걸쳐 가시적입니다.
글로벌: 전체 PowerShell 세션에서 접근 가능합니다.

할당 및 수정

할당:

변수는 할당 연산자(=)를 사용하여 값을 할당합니다.

예제:

$myVariable = "New value"

수정:

변수는 새 값을 할당하거나 기존 값을 변경하여 수정할 수 있습니다.

예제:

$number = $number + 5

이 변수들을 사용하여 Windows PowerShell에서 문자열 보간을 수행할 것입니다.

Windows PowerShell에서의 문자열 보간

문자열 보간은 변수를 포함하고, 표현식 또는 명령어를 문자열 안에 직접 삽입하여 동적인 콘텐츠를 생성하는 과정을 의미합니다.

일반 구문:

  • 큰 따옴표로 감싼 문자열("..."): 큰 따옴표로 감싸진 문자열은 문자열 보간을 허용합니다.
  • 보간 구문: $variable, $($expression), 및 $(command)

변수 보간하기

Windows PowerShell에서 문자열 보간을 사용하여 연결된 문자열의 예로 이해해 보겠습니다.

예제 코드:

$company = "XYZ Company"
Write-Output "Welcome to $company"

위 PowerShell 스크립트에서, $company 변수는 XYZ Company 문자열 값을 포함하고 있습니다. 큰 따옴표 "" 안에서 Windows PowerShell은 문자열 변수 이름을 보간하고 아래의 문장에서 그 결과를 표시합니다.

출력:

Welcome to XYZ Company

변수 이름을 작은 따옴표 '' 안에 넣으면, 아래와 같이 변수 이름이 대신 표시됩니다.

예제 코드:

$company = "XYZ Company"
Write-Output 'Welcome to $company'

출력:

Welcome to $company

이러한 출력이 발생하는 이유는 작은 따옴표로 감싼 모든 것이 리터럴 표현으로 처리되기 때문입니다. 따라서 문자열을 보간할 때는 큰 따옴표를 사용하고 있는지 확인하십시오.

표현식 보간하기

$age = 25
Write-Host "In five years, I'll be $($age + 5) years old."

문자열 보간은 $()로 표시되며, 변수 값이나 표현식을 문자열 안에 포함할 수 있습니다. 이 경우, $age 변수에 저장된 값에 5를 추가하여 미래의 나이를 동적으로 계산하여 출력은 5년 후 예상되는 나이를 반영하게 됩니다.

명령어 보간하기

$currentDate = Get-Date
Write-Host "The current date is $(Get-Date)."

결과는 Write-Host 줄이 실행되는 순간의 현재 날짜와 시간을 보여주며, Get-Date cmdlet로부터 업데이트된 값을 문자열 내에서 동적으로 보간합니다.

PowerShell에서 환경 변수와 함께 문자열 보간하기

환경 변수는 운영 체제에 저장된 동적 이름 값으로 시스템 환경, 사용자 설정 및 구성 설정에 대한 정보를 담고 있습니다.

Windows PowerShell에서 Env: 변수로 나타나는 환경 변수는 운영 체제 환경 및 프로그램을 저장합니다. 이 정보에는 운영 체제 경로, Windows 설치 디렉터리의 위치, 운영 체제에서 사용 중인 프로세스 수 등이 포함됩니다.

일반 환경 변수:

  • $env:USERNAME: 현재 사용자의 사용자 이름을 나타냅니다.
  • $env:COMPUTERNAME: 컴퓨터의 이름을 저장합니다.
  • $env:TEMP: 임시 파일 디렉터리를 지정합니다.
  • $env:PATH: 시스템의 실행 파일 경로를 포함합니다.

Windows PowerShell에서 환경 변수는 다른 표준 변수처럼 문자열 안에서 보간될 수 있습니다.

예제 코드:

Write-Output "My computer name: $Env:COMPUTERNAME"

위의 PowerShell 스크립트에서, $Env: COMPUTERNAME은 더블 따옴표 안에서 변수 값을 표시하고 문자열과 연결합니다.

출력:

My computer name: WINDOWS-PC01

PowerShell에서 이스케이프 문자와 함께 문자열 보간하기

문자열 보간 시 큰 따옴표를 사용해야 한다고 논의했음에도 불구하고, 특정 경우에는 변수를 큰 따옴표 안에 넣더라도 기대하는 결과가 제공되지 않습니다. 이 중 하나가 이스케이프 문자입니다.

이스케이프 문자는 문자 시퀀스 내에서 다음 문자의 대체 해석을 호출하는 일종의 문자입니다. 이스케이프 문자는 프로그램을 컴파일할 때 사용되는 특정 기호 때문에 프로그래밍 언어에서 일반적입니다.

PowerShell의 이스케이프 문자는 문자열 내에서 특별한 의미를 가질 수 있는 문자를 나타내는 데 사용되는 특수 시퀀스입니다. 이들은 문자열 내에 특수 문자를 포함하거나 문자열 내에서 형식을 제어할 수 있게 해줍니다.

일반 이스케이프 문자:

  • 백틱 (`): 특별한 의미를 가진 문자를 이스케이프하는 데 사용됩니다.
  • 큰 따옴표 ("): 큰 따옴표로 감싼 문자열 내에서 보간 및 표현식 평가를 가능하게 합니다.
  • 줄바꿈 (``n`): 줄바꿈 문자를 나타냅니다.
  • 탭 (``t`): 수평 탭을 삽입합니다.
  • 캐리지 리턴 (``r`): 커서를 줄의 시작으로 이동시킵니다.

예를 들어, Windows PowerShell에서 달러 기호 $는 변수를 정의할 때 사용하는 가장 일반적인 연산자 중 하나입니다. 아래에서 달러 기호를 예로 사용할 것입니다.

예제 코드:

$price = 99
Write-Output "Discounted Price: $$price"

위의 Windows PowerShell 스크립트에서, 큰 따옴표 안의 $price는 예상한 출력 결과를 제공하지 않는데, 스크립팅 환경이 이중 달러 기호 $$를 다르게 해석하기 때문입니다.

출력:

Discounted Price: Discounted Price: $$priceprice

원하는 출력을 얻기 위해 아래와 같이 Windows PowerShell 이스케이프 문자를 사용하여 문자열 보간을 수행하세요.

예제 코드:

$price = 99
Write-Output "Discounted Price: `$$price"

출력:

Discounted Price: $99

PowerShell에서 특수 문자가 포함된 변수를 사용한 문자열 보간

앞서 언급했듯이, 달러 기호 $로 시작하는 변수 이름은 영문자와 숫자 및 특수 문자를 포함할 수 있습니다. PowerShell의 변수는 백틱 (`), 달러 기호 ($), 또는 따옴표 (")와 같은 특수 문자를 포함할 수 있습니다.

변수를 정의하는 가장 좋은 방법은 영문자와 밑줄 _ 문자만 포함하는 것입니다. 다른 특수 문자를 포함하는 변수 이름은 사용하기 어려우므로 피하는 것이 좋습니다.

그러나 특수 문자가 포함된 변수를 사용하는 것이 불가능하다는 것은 아닙니다. 이러한 상황을 피할 수 없다면, 변수 이름의 모든 특수 문자를 포함하고 있는 달러 기호와 중괄호 ${}를 사용할 수 있습니다.

예제 코드:

${this is a variable!} = "Hello"
Write-Output "${this is a variable!} World!"

출력:

Hello World!

"${this is a variable!}" 변수는 비전통적인 이름에도 불구하고 생성되고 값 "Hello"가 할당됩니다.

Write-Output 내의 문자열 보간은 변수의 값을 텍스트 " World!"와 연결하여 출력 "Hello World!"를 생성합니다.

PowerShell에서 서브 표현식 연산자를 사용한 문자열 보간

PowerShell의 서브 표현식 연산자($())는 문자열 내에서 표현식, 명령 또는 서브 스크립트를 평가할 수 있게 해줍니다.

Windows PowerShell에서는 문자열 보간처럼 표현식 내에서 $() 서브 표현식 연산자를 사용하여 표현식을 실행할 수 있습니다. 이렇게 하려면 실행할 모든 표현식을 달러 기호와 괄호 ()로 감싸야 합니다.

예제 코드:

$num1 = 10
$num2 = 5

Write-Output "$num1 + $num2 = $($num1+$num2)"

출력:

10 + 5 = 15

문자열 보간은 $num1$num2의 값(각각 105)을 포함하여 $num1$num2를 더하여 얻은 산술 연산의 결과(15)를 포함합니다.

결론

이 기사는 문자열 내에 변수 값, 표현식 및 명령을 포함시켜 동적인 문자열 형식을 가능하게 하는 PowerShell의 문자열 보간을 탐구합니다. 여기에는 다음과 같은 내용이 포함됩니다:

  1. PowerShell의 변수: 이러한 컨테이너는 명시적인 타입 선언 없이 다양한 데이터 유형을 보유하고 특정 이름 지정 규칙을 따릅니다.
  2. 문자열 보간의 기본: 이를 통해 $변수, $($표현식), 및 $(명령)을 큰 따옴표로 감싸진 문자열 안에 포함시켜 동적인 콘텐츠를 생성합니다.
  3. 사용 예:
    • 문자열 내에서 동적인 콘텐츠를 위해 변수 사용.
    • 시스템 관련 정보에 대해 환경 변수($Env:VARIABLE_NAME) 통합.
    • 문자열 내에서 특수 문자나 형식을 처리하기 위해 이스케이프 문자(`) 사용.
    • ${} 구문을 사용하여 특수 문자나 공백이 포함된 변수 생성 및 사용.
    • 문자열 내에서 복잡한 계산을 위한 서브 표현식 연산자 $() 활용.

문자열 보간에서 이러한 기술을 이해하면 PowerShell 사용자는 동적인 문자열 생성에 대한 강력한 도구를 갖추게 되어 스크립트 형식에서 가독성과 유연성을 높일 수 있습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell String