PowerShell의 카운터

Migel Hewage Nimesha 2024년2월15일
PowerShell의 카운터

프로그래밍에서 카운터는 프로그램 내에서 계산해야 하는 항목을 추적하는 데 사용됩니다. 일반적으로 0으로 초기화되는 숫자형 변수입니다.

프로그램 내에서 카운터를 증가시키는 방법에는 여러 가지가 있습니다. 이 기사에서는 PowerShell에서 카운터를 구현하는 다양한 접근 방식에 중점을 둘 것입니다.

PowerShell의 기본 카운터

카운터를 구현하는 기본 방법은 다음과 같이 변수를 선언하고 0으로 초기화하는 것입니다.

$counter = 0

$counter 변수 값을 PowerShell 명령 창에 출력해 보겠습니다.

Write-Host $counter

출력:

powershell의 카운터 - 기본 카운터 1부

두 가지 방법을 사용하여 $counter 변수의 값을 증가시킬 수 있습니다. 전통적인 방법 중 하나는 $counter에 1을 추가하고 그 결과를 $counter에 다시 할당하는 것입니다.

$counter = $counter + 1

출력:

powershell의 카운터 - 기본 카운터 2부

또 다른 접근 방식은 증분(++) 연산자를 사용하는 것입니다.

$counter++

2여야 하는 $counter 변수의 값을 인쇄해 보겠습니다.

powershell의 카운터 - 기본 카운터 3부

예상대로 $counter 변수의 값은 2입니다.

카운터 변수를 증가시키는 방법에는 두 가지가 있습니다.

  • 사후 증분
  • 사전 증분

예제를 사용하여 둘의 차이점을 이해해 봅시다.

PowerShell의 사후 증분 연산자

일반적으로 후위 증가는 후위 증가가 사용되는 식을 실행한 후 변수 값을 증가시킵니다. 다음 예제를 통해 쉽게 이해할 수 있습니다.

먼저 $countVar라는 변수를 선언하고 여기에 0을 할당합니다.

$countVar = 0
Write-Host $countVar

출력:

powershell의 카운터 - 증분 후 1부

다음으로 사후 증가를 사용하여 $countVar 값을 증가시킵니다.

$counterHolder = $countVar++
Write-Host $counterHolder

출력:

powershell의 카운터 - 증분 후 2부

보시다시피 $counterHolder 변수는 0을 보유하며 이는 $countVar++가 해당 표현식 내에서 증가하지 않았음을 의미합니다. 그러나 $countVar의 실제 값은 증가되어야 합니다. $countVar 변수 값을 인쇄해 보겠습니다.

powershell의 카운터 - 사후 증가 3부

PowerShell의 사전 증분 연산자

사전 증분 연산자는 변수 값을 식에서 사용하기 전에 증분하는 데 사용됩니다. 다음 예를 통해 이를 이해해 봅시다.

먼저 $preIncrVar라는 변수를 선언하고 0으로 초기화합니다.

$preIncrVar = 0
Write-Host $preIncrVar

powershell의 카운터 - 사전 증가 1부

다음과 같이 선행 증가 연산자를 사용합시다.

$preIncrVarHolder = ++$preIncrVar
Write-Host $preIncrVarHolder

출력:

powershell의 카운터 - 사전 증가 2부

예상대로 $preIncrVarHolder 변수의 값은 1입니다. 이는 사전 증가 연산자가 사용 중인 표현식 내에서 $preIncrVar 변수의 값을 증가시킨다는 의미입니다. 이러한 접근 방식은 PowerShell의 for,whiledo...while 루프에서 사용할 수 있습니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.