Powershell – Arrays (배열)

Powershell 의 모든 Variable(변수)는 .NET의 Type을 가지는데 지금 부터 설명할 Array는 Powershell에서 기본 값으로 System.Object[] 타입으로 생성된다.

배열 선언

간단한 Array부터 만들어 보자.

다음과 같이 출력 될 것이다.

원소가 3개인 Object 배열 (Object[]) 이 생성되었다. 확인을 위해 다음을 하나씩 입력 해 보자.

$Arr 개체가 타입이 Object[] 즉 배열로 생성이 되었고, Property들이 정상 작동 한다.

Powershell 에서 배열은 @( ) 연산자 를 이용하여 선언 할 수도 있다. 다음 선언 되는 2개의 변수는 동일 한 것이다(Compare-Object 기준).


인덱스를 이용한 원소 접근

[] 또는 메서드와 인덱스를 통해 원소에 접근 할 수 있다.
인덱스는 0 부터 할당되어 원소가 3개인 경우 인덱스는 0 ~ 2 이다.

다음은 인덱스를 이용해 원소에 접근하고 값을 변경 한다.


배열 순회

배열을 순회하는 방법에는 여러가지가 있다. 익숙한 for문과 인덱스를 이용하는 방법 이외에도 C#의 그것과 유사한 foreach 문, 그리고 Powershell 의 개체 파이프라인을 이용하는 방법이 있다. 다음 예제들은 모두 같은 출력을 가진다.


배열 순회시 주의 사항

foreach 문이나 Pipeline 의 출력을 받는 ForEach-Object cmdlet 내부에서 배열의 원소값을 변경하는 실수를 범하지 말자. 이 것들은 iteration variable 이기 때문에 실제 원소들이 변경 되지 않는다.

순회 하면서 원소를 변경 할 때에는 for 문과 index를 사용 하는 것이 방법중 하나가 될 수 있다.


배열 연산자

Powershell 에서의 배열은 몇가지 연산자를 지원 한다. 실제 .NET Object[] 에서는 지원하지 않는 기능인데 Powershell 에서는 편리하게 사용 할 수 있다.

+ : 하나의 원소를 또는 다른 배열을 합친 새로운 배열을 리턴한다.

+= : 기존의 배열에 하나의 원소 또는 다른 배열을 추가한다. List 개체의 .Add() , .AddRange() 와 비슷 하다.

* : 곱한 값 만큼 반복되는 배열을 리턴한다. (int 값만 가능하다.)

*= : 기존의 배열에 곱한 값 만큼 반복되는 배열(기존의 배열 포함)을 추가 시킨다. (int 값만 가능하다.)

2 thoughts on “Powershell – Arrays (배열)

  1. mirth81

    야, 왜자꾸 파워쉘 이딴거 공부하냐 🙂
    열심히 하는거 보니 보기 좋네.

  2. 쉘 언어 하나정도는 공부 해야 될꺼 같아서요 ^^ .
    서버 관리나 개발 작업 하는데 사용하니까 도움이 많이 되는거 같아요.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> 

This site uses Akismet to reduce spam. Learn how your comment data is processed.