PowerShell에서 배열을 함수에 전달하는 방법

  1. PowerShell 배열
  2. 배열을 PowerShell 함수에 전달하기
  3. 결론
PowerShell에서 배열을 함수에 전달하는 방법

많은 프로그래밍 언어, 특히 PowerShell을 포함하여, 배열은 기본 데이터 구조입니다. 배열은 값을 효율적으로 저장할 수 있게 해주어 PowerShell 스크립팅의 다양한 작업에 중요한 도구가 됩니다.

이 문서에서는 배열과 PowerShell에서 배열을 함수에 전달하는 관례에 초점을 맞출 것입니다.

PowerShell 배열

PowerShell 배열은 Java, Python, C# 등과 같은 범용 프로그래밍 언어의 배열과 다르지 않습니다. 이들은 고정 크기의 값을 또는 어떤 데이터 타입의 객체를 저장할 수 있는 기능을 제공합니다.

구문:

$intTypeArray = 34, 100, 1000, 45, 455, 1

다음 예제에서 $intTypeArray 변수의 타입을 확인하기 위해 내장된 GetType() 메서드를 사용할 것입니다.

변수 1의 유형 확인

예상한 대로, 기본 타입은 System.Array입니다. 이 배열의 데이터 타입을 명시적으로 지정하지 않았기 때문에 PowerShell 엔진은 이를 객체 배열로 생성했습니다.

흥미롭게도, PowerShell 배열은 단일 배열 내에서 다양한 타입의 요소를 수용할 수 있으며, 아래 코드 조각에서 예시 볼 수 있습니다.

코드:

$mixedElementArray = 200, 'stringElement', 12.555, 'hello'

출력:

변수 2의 유형을 확인하세요.

보시다시피, 기본 PowerShell 배열은 Object[] 타입을 기반으로 합니다.

PowerShell에서는 모든 값이나 객체가 Object에서 상속됩니다. 따라서 기본 PowerShell 배열에 모든 값이나 객체를 할당할 수 있습니다.

기본 배열 외에도 PowerShell은 강타입 배열로 알려진 변형을 제공합니다. 이 배열은 특정 데이터 타입의 값을 전용으로 수용합니다.

강타입 배열을 생성할 때는 참조 변수를 int32[], string[] 등과 같은 특정 배열 타입으로 캐스팅할 필요가 있습니다.

[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'

$stringTypeArray의 타입을 확인해 봅시다.

$stringTypeArray.GetType()

출력:

변수 3의 유형을 확인하다

배열을 PowerShell 함수에 전달하기

PowerShell에서는 강타입 배열이 타입 안전성 때문에 PowerShell 프로그램에서 사용하는 것이 권장됩니다. 이미 정의된 배열을 함수에 전달해야 할 때, 다음 구문이 제대로 작동해야 합니다.

구문:

function <function_identifier>([<data_type>[]]$<parameter_name>)
{

}

이 구문에서:

  • function: PowerShell에서 함수 정의를 시작하는 데 사용되는 키워드를 나타냅니다.
  • <function_name>: 함수의 이름을 나타냅니다.
  • [<data_type>[]]: 매개변수의 데이터 타입을 지정하여 함수 내에서 지정된 데이터 타입의 배열로 작업할 수 있음을 허용합니다.
  • $<parameter_name>: 함수 내에서 매개변수의 이름으로 사용됩니다.

이러한 방식으로 배열을 함수에 쉽게 전달할 수 있습니다. 이를 설명하기 위해 먼저 letsPassAnArray라는 PowerShell 함수를 정의해 보겠습니다.

코드:

function letsPassAnArray([string[]]$stringList) {
    foreach ($arrEle in $stringList) {
        Write-Host $arrEle
    }
}

이 예제에서 우리는 $stringList라는 매개변수를 가진 letsPassAnArray라는 PowerShell 함수를 정의합니다. 그런 다음 $stringList 배열의 각 요소($arrEle)를 반복하는 foreach 루프를 시작합니다.

루프 내부에서는 각 배열 요소를 콘솔에 씁니다. 함수를 테스트하기 위해 'Apple', 'Orange''Grapes' 요소로 구성된 문자열 타입 배열인 $stringArr를 생성합니다.

코드:

[string[]]$stringArr = 'Apple', 'Orange', 'Grapes'
letsPassAnArray($stringArr)

마지막으로 letsPassAnArray 함수를 호출하고 $stringArr 배열을 인수로 전달하여 함수가 배열의 각 요소를 반복하고 출력하게 합니다.

출력:

PowerShell 함수에 배열 전달하기

결론

PowerShell에서 배열과 이를 함수에 전달하는 방법을 이해하는 것은 효율적이고 체계적인 스크립팅에 필수적입니다. 다양한 데이터 타입을 수용할 수 있는 일반 배열이든, 타입 안전성을 위한 강타입 배열이든, 배열 조작을 마스터하면 더 효과적인 PowerShell 스크립트를 작성할 수 있습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
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.

관련 문장 - PowerShell Array