ⓟrogramming/PowerShell

POWERSHELL SCRIPT - 파워셸 범위

뚱땡이 우주인 2018. 6. 28. 22:29

범위 

 설명

 범위 한정자

 전역

파워셸 세션을 시작할 때 범위

 $global:변수명

 로컬

 현재 범위, 전역 혹은 다른 범위가 될 수 있음

 $local:변수명

 스크립트

 스크립트 파일이 실행되는 동안 만들어지는 범위

스크립트 내에서 실행하는 명령 입장에서 로컬 범위는 스크립트 범위다.

 $script:변수명

 전용

(Private)

 외부에서 보이지 않는다.

 $private:변수명

 숫자를 부여한 범위

한 범위와 다른 범위의 상대 위치를 나타냄. 범위 0은 현재 또는 로컬을 나타내며, 범위 1은 직계 부모 범위, 범위2는 부모의 부모 범위와 같은 식으로 나타낸다. 

 



예제를 통해서 파워셸 범위를 확인해 보자.


CallFrom-Script.ps1
function global:CallFrom-Function {
    $callByFunction = "다른 함수에서 불렀어요."
    "callByFunction 변수는 $callByFunction"
}

function global:CallFrom-Script {
    $callByScript = "다른 스크립트에서 불렀어요."
    "callByScript 변수는 $callByScript"
}
FunctionScope.ps1
$Global:globalVar = "전역 범위. 스크립트 밖에서 접근"
function Check-FunctionScope {
    $functionVar = '함수 범위, 함수내에서만 접근'
    "functionVar은 $functionVar"
    $Local:lovalVarInFunc = '함수내에서 선언한 로컬 범위'
    $Script:scriptVarInFunc = '함수내에서 선언한 스크리브 범위'
    $Global:globalVarInFunc = '함수내에서 선언한 전역 범위'
    ''
    CallFrom-Function
}
''

$scriptVar = "스크립트 범위. 스크립트 내에서만 접근"
"scriptVar은 $scriptVar"

Check-FunctionScope
''
CallFrom-Script
실행
PS /Users/hongkun/workspace/powershell> /Users/hongkun/workspace/powershell/CallFrom-Script.ps1


PS /Users/hongkun/workspace/powershell> cd Function:
PS Function:/> ls
CallFrom-Script.ps1     Chap8Ex2.ps1            Check-FunctionScope     Check-FunctionScope.ps1 Get-SecurityEvents.ps1
PS Function:/> /Users/hongkun/workspace/powershell/Check-FunctionScope.ps1



scriptVar은 스크립트 범위. 스크립트 내에서만 접근
functionVar은 함수 범위, 함수내에서만 접근

callByFunction 변수는 다른 함수에서 불렀어요.

callByScript 변수는 다른 스크립트에서 불렀어요.
PS /Users/hongkun/workspace/powershell>

PS /Users/hongkun/workspace/powershell> $globalVar
전역 범위. 스크립트 밖에서 접근
PS /Users/hongkun/workspace/powershell> $scriptVar
스크립트 범위. 스크립트 내에서만 접근