변수에 대한 지침
명령 또는 데이터 소스 유형을 생성할 때 WFA(OnCommand Workflow Automation)에서 PowerShell 및 Perl 변수에 대한 지침을 숙지해야 합니다.
PowerShell 변수
지침 | 예 |
---|---|
스크립트 입력 매개 변수의 경우:
|
'$VolumeName' '$AutoDeleteOptions' '$Size' |
스크립트 내부 변수:
|
'$newVolume' "$qtreeName" `$time' |
기능:
|
'GetVolumeSize' |
변수 이름은 대/소문자를 구분하지 않습니다. 그러나 가독성을 높이기 위해 같은 이름에 다른 대/소문자를 사용하지 않아야 합니다. |
'$variable'은(는) '$Variable'과(와) 같습니다 |
변수 이름은 영문으로 되어 있어야 하며 스크립트의 기능과 관련이 있어야 합니다. |
'$a'가 아니라 '$name'을(를) 사용합니다 |
각 변수의 데이터 형식을 명시적으로 선언합니다. |
[string] 이름입니다 [int] 크기 |
특수 문자(! @#&%,.) 및 공백. |
없음 |
PowerShell 예약 키워드를 사용하지 마십시오. |
없음 |
필수 매개변수를 먼저 배치한 다음 선택적 매개변수를 배치하여 입력 매개변수를 그룹화합니다. |
param( [parameter(Mandatory=$true)] [string]$Type, [parameter(Mandatory=$true)] [string]$Ip, [parameter(Mandatory=$false)] [string]$VolumeName ) |
의미 있는 도움말 메시지와 함께 'HelpMessage' 주석을 사용하여 모든 입력 변수에 주석을 달 수 있습니다. |
[parameter(Mandatory=$false,HelpMessage="LUN to map")] [string]$LUNName |
파일러를 변수 이름으로 사용하지 말고 대신 배열(Array)을 사용하십시오. |
없음 |
인수가 열거형 값을 가져오는 경우 `ValidateSet' 주석을 사용합니다. 그러면 해당 매개 변수의 Enum 데이터 형식이 자동으로 변환됩니다. |
[parameter(Mandatory=$false,HelpMessage="Volume state")] [ValidateSet("online","offline","restricted")] [string]$State |
매개 변수가 용량 유형임을 나타내기 위해 ""_Capacity"로 끝나는 매개 변수에 별칭을 추가합니다. |
""볼륨 작성" 명령은 다음과 같이 별칭을 사용합니다. [parameter(Mandatory=$false,HelpMessage="Volume increment size in MB")] [Alias("AutosizeIncrementSize_Capacity")] [int]$AutosizeIncrementSize |
매개 변수가 암호 형식임을 나타내기 위해 ""_Password"로 끝나는 매개 변수에 별칭을 추가합니다. |
param ( [parameter(Mandatory=$false, HelpMessage="In order to create an Active Directory machine account for the CIFS server or setup CIFS service for Storage Virtual Machine, you must supply the password of a Windows account with sufficient privileges")] [Alias("Pwd_Password")] [string]$ADAdminPassword ) |
Perl 변수
지침 | 예 |
---|---|
스크립트 입력 매개 변수의 경우:
|
'$VolumeName' '$AutoDeleteOptions' '$Size' |
스크립트 내부 변수에는 약어를 사용하지 마십시오. |
'$new_volume' '$qtree_NAME' `$time' |
기능에 약어를 사용하지 마십시오. |
'get_volume_size'입니다 |
변수 이름은 대/소문자를 구분합니다. 가독성을 향상시키려면 같은 이름에 다른 대/소문자를 사용하지 않아야 합니다. |
'$variable'은(는) '$Variable'과(와) 같지 않습니다 |
변수 이름은 영문으로 되어 있어야 하며 스크립트의 기능과 관련이 있어야 합니다. |
'$a'가 아니라 '$name'을(를) 사용합니다 |
필수 매개변수를 먼저 배치한 다음 선택적 매개변수를 사용하여 입력 매개변수를 그룹화합니다. |
없음 |
GetOptions 함수에서 입력 매개 변수에 대한 각 변수의 데이터 형식을 명시적으로 선언합니다. |
GetOptions( "Name=s"=>\$Name, "Size=i"=>\$Size ) |
파일러를 변수 이름으로 사용하지 말고 대신 배열(Array)을 사용하십시오. |
없음 |
Perl에는 열거 값에 대한 'ValidateSet' 주석이 포함되지 않습니다. 인수가 열거 값을 갖는 경우에는 명시적 ""if"" 문을 사용합니다. |
if (defined$SpaceGuarantee&&!($SpaceGuaranteeeq'none' |
$SpaceGuaranteeeq'volume' |
|
$SpaceGuaranteeeq'file')) { die'Illegal SpaceGuarantee argument: \''.$SpaceGuarantee.'\''; } ---- |
|
모든 Perl WFA 명령은 변수, 참조 및 서브루틴에 안전하지 않은 구조를 사용하지 않도록 "strict" pragma를 사용해야 합니다. |
use strict; # the above is equivalent to use strictvars; use strictsubs; use strictrefs; |
모든 Perl WFA 명령은 다음 Perl 모듈을 사용해야 합니다.
|
use Getopt::Long; use NaServer; use WFAUtil; |