PowerShell:
Организация кода в функции
Как это сделать:
Давайте напишем функцию для расчета суммы двух чисел. Просто, но это наглядно иллюстрирует суть.
function Add-Numbers {
param (
[int]$FirstNum,
[int]$SecondNum
)
return $FirstNum + $SecondNum
}
# Вызов функции с 5 и 10
$sum = Add-Numbers -FirstNum 5 -SecondNum 10
Write-Output "Сумма равна $sum"
Пример вывода:
Сумма равна 15
Глубокое погружение
Функции в PowerShell, как и в большинстве языков программирования, не новость. Мы компартментализируем код с дней Fortran. Речь идет о том, чтобы “не изобретать велосипед”. Альтернативы? Конечно, скрипты или cmdlet. Но им не хватает аккуратности и контекстно-зависимой организации, как у функций внутри скриптов.
Реализация? Функции могут быть простыми, как наш пример, или сложными, с областями видимости, входными данными из конвейера и многим другим. Возьмем Расширенные Функции
. Они имитируют cmdlet с параметрами, имеющими атрибуты, например, [Parameter(Mandatory=$true)]
. Это лишь малая часть гибкости PowerShell.