-
[PowerShell] 자동변수(Automatic Variable) - 14. $PWD, $ShellId, $StackTrace, $switch, $thisShell & CMD/PowerShell 2023. 11. 26. 15:29반응형
$PWD
현재 파워셸을 실행중인 세션의 경로를 의미한다.
$ShellId
현재 파워셸의 식별자를 의미한다. Windows 버전과 Core 구분 없이 Microsoft.PowerShell로 출력한다.
$StackTrace
가장 최근 발생한 오류에 대한 StackTrace 정보가 저장된다. stacktrace.ps1 이름의 파일 생성 후 아래와 같이 작성한다.
$action = { Write-Host 'try divied by zero' 1 / 0 } $action.Invoke()
$switch
switch 블록 내에서만 선택 case 열거자 자동변수. 아래 코드는 $switch 변수를 통해 입력받은 case 객체를 화면에 출력한다.
function Test-Switch { param ( [string] $a ) switch ($a) { default { Write-Host $switch.Current } } }
프로필 파일에 해당 메소드를 추가 후 새로운 세션에서 Test-Switch 함수를 실행해보자. 입력받은 값이 출력되는 것을 확인할 수 있다.
$this
클래스내 메소드에서 자기자신을 가리킬 때 사용한다. 아래 코드는 $this 를 이용하여 입력받은 Name 파라메터로 멤버변수 $Name에 값을 설정하는 클래스 선언 코드이다.
class TestClass { [string] $Name TestClass([string] $Name) { $this.Name = $Name } [void] PrintHello() { Write-Host "Hello, $($this.Name)" } }
프로필에 TestClass 코드를 추가한 후, 새로운 파워셸 세션에서 아래 코드를 참조하여 TestClass 유형의 객체 $test를 생성해보자.
$test = [TestClass]::new('ddochea')
생성 후 함께 추가한 PrintHello 함수를 호출하면 아래와 같은 결과가 출력된다.
일반적인 OOP 형식의 프로그래밍 언어에서 자주 쓰는 this와 같은 개념이다.
참조
반응형'Shell & CMD > PowerShell' 카테고리의 다른 글