PowerShell의 함수에 배열 전달

Migel Hewage Nimesha 2024년2월15일
  1. PowerShell 어레이
  2. PowerShell 함수에 배열 전달
PowerShell의 함수에 배열 전달

이 문서에서는 배열과 PowerShell의 함수에 배열을 전달하는 규칙에 대해 중점적으로 설명합니다.

PowerShell 어레이

PowerShell 배열은 Java, Python, C# 등과 같은 범용 프로그래밍 언어의 배열과 다르지 않습니다. 고정 크기 기본 값 또는 모든 데이터 유형의 개체를 보유할 수 있습니다.

통사론:

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

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

변수 유형 확인 1

예상대로 기본 유형은 System.Array입니다. 이 배열의 데이터 형식을 명시적으로 지정하지 않았으므로 PowerShell 엔진에서 개체 배열로 생성했습니다.

다음 코드와 같이 단일 배열에 여러 유형의 요소를 보유할 수 있습니다.

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

출력:

변수 유형 확인 2

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

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

강력한 형식의 배열이라는 PowerShell 배열의 또 다른 변형이 있습니다. 강력한 형식으로 생성된 배열은 특정 형식의 요소 컬렉션만 포함할 수 있습니다.

강력한 형식의 배열을 만들 때 참조 변수를 int32[], string[] 등과 같은 특정 배열 형식으로 캐스팅해야 합니다.

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

$stringTypeArray의 유형을 확인합시다.

$stringTypeArray.GetType()

출력:

변수 유형 확인 3

PowerShell 함수에 배열 전달

강력한 형식의 배열은 형식 안전성이 있으므로 PowerShell 프로그램에서 사용하는 것이 좋습니다. 이미 정의된 배열을 함수에 전달해야 할 때마다 다음 구문이 제대로 작동해야 합니다.

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

}

이런 식으로 함수에 배열을 쉽게 전달할 수 있습니다. 먼저 letsPassAnArray라는 PowerShell 함수를 정의해 보겠습니다.

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

이 경우 문자열 유형 배열을 전달하고 foreach 연산자를 사용하여 배열 내부의 각 요소를 인쇄합니다.

다음으로 PowerShell 스크립트에서 이 함수를 호출합니다. 문자열 유형의 배열도 생성해야 합니다.

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

출력:

PowerShell 함수에 배열 전달

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