ⓟrogramming/PowerShell
POWERSHELL SCRIPT - 파워셸 범위
뚱땡이 우주인
2018. 6. 28. 22:29
범위 |
설명 |
범위 한정자 |
전역 |
파워셸 세션을 시작할 때 범위 |
$global:변수명 |
로컬 |
현재 범위, 전역 혹은 다른 범위가 될 수 있음 |
$local:변수명 |
스크립트 |
스크립트 파일이 실행되는 동안 만들어지는 범위 스크립트 내에서 실행하는 명령 입장에서 로컬 범위는 스크립트 범위다. |
$script:변수명 |
전용 (Private) |
외부에서 보이지 않는다. |
$private:변수명 |
숫자를 부여한 범위 |
한 범위와 다른 범위의 상대 위치를 나타냄. 범위 0은 현재 또는 로컬을 나타내며, 범위 1은 직계 부모 범위, 범위2는 부모의 부모 범위와 같은 식으로 나타낸다. |
|
예제를 통해서 파워셸 범위를 확인해 보자.
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 스크립트 범위. 스크립트 내에서만 접근