Bu bölümde diğer yazılım dillerinden aşina olunan ve karmaşık scriptleri basitleştiren bir yöntem olan fonksiyon kullanımına değinilecektir.
Fonksiyonun temel amacı script içerisinde kullanacağınız kod bloğuna bir isim vermektedir. Bu sayede değişkenlerde olduğu gibi, oluşturulan fonksiyon yine sizin belirlediğiniz isim ile scriptin içerisinde bir veya birden fazla kez çağırılabilir.
PowerShell içerisinde fonksiyon oluşturabilmek için gerekli olan Kullanım Biçimi bilgisi aşağıdaki gibidir;
Resim-1
Function
FonksiyonIsmi (Parametreler) {Script Bloğu}
Yukarıdaki Kullanım Biçimi bilgisinde görüldüğü gibi herhangi bir fonksiyonu oluşturmak için Function anahtar kelimesinin kullanılması gerekmektedir. PowerShell içerisinde girilen bu anahtar kelime ile konsol bir fonksiyon oluşturma aşamasında olduğunu anlayacak ve fonksiyon ismi bilgisi girilmesini bekleyecektir.
FonksiyonIsmi script içerisinde sınırları belirlenmek istenen kod bloğuna verilecek isimdir. Bu noktada ilgili kod bloğunu anlaşılır biçimde tanımlayacak isimler verilmesi, fonksiyonun karmaşık scriptlerde kullanılmasını kolaylaştıracaktır.
Parametreler seçeneğe bağlı olarak fonksiyonlar ile birlikte kullanılabilir. Herhangi bir parametreye sahip olmayan bir fonksiyon oluşturulduğunda yalnızca fonksiyon isminin kullanılması ilgili kod bloğunun olduğu gibi çalıştırılmasını sağlayacaktır. Örneğin statik bir ip numarasının pinglenmesi için bir fonksiyon yazılabilir. Böylece yalnızca fonksiyonun ismi PowerShell konsolunda girilerek ilgili IP’nin pinglenmesi sağlanır. Ancak parametre kullanımı ile fonksiyon içerisinde kullanılan ip numarasına bir değişken atanır ve fonksiyon bu parametre ile çalıştırılabilir. Böylece ping işlemini gerçekleştirecek fonksiyon ismi ve ardından ip numarası yazılarak istenilen ip numarasına ping atılabilir.
Script Bloğu fonksiyon içerisinde kullanılmak istenen kodları barındıran bölümdür. Fonksiyon oluşturulurken köşeli parantez içerisine yerleştirilen tüm değerler, fonksiyon ismi çağrıldığında parametreleri ile birlikte çalıştırılacaktır.
Fonksiyon kullanımının genel özellikleri incelendiğine göre başlangıç seviyesi örneklere geçilebilir;
Resim-2
İlk örnekte temel bir fonksiyon oluşturulmuştur. Geri ismi verilen bu fonksiyona köşeli parantez kullanımı ile PowerShell konsolunun tanımlayabileceği script bloğu yerleştirilmiştir. Bilindiği gibi cd.. komutu PowerShell içerisinde de desteklenmekte ve konsol içerisinde bir geri dizine geçiş yapmak için kullanılmaktadır.
Örnek üzerinde görüldüğü gibi PowerShell konsolu içerisinde bir fonksiyon tanımlandığında size herhangi bir çıktı verilmeyecektir. Bu andan itibaren yalnızca fonksiyon ismi kullanılarak ilgili script bloğu çağırılır.
PowerShell içerisinde fonksiyona atanabilecek tüm değerleri içeren varsayılan bir argument bulunmakta ve $args değişkeni içerisinde saklanmaktadır.
Resim-3
şeklinde oluşturulan bir fonksiyonda $args değişkeni belirtildiği için kullanıcı bu değeri fonksiyon ismi ile birlikte kullanabilir durumda olacaktır.
Resim-4
Birden Fazla Argument Kullanımı
Fonksiyon içerisinde argument kullanarak kullanıcıdan değer alınabileceğinden bahsetmiştik. Bu noktada birden fazla argument kullanıldığı takdirde bu argumentlerin fonksiyon içerisinde tanımlanması için virgül-liste kullanılabilir.
Aşağıdaki örnekte iki değişken (argument) kullanılarak kullanıcıdan fonksiyon içerisinde kullanılmak üzere iki farklı değer istenmektedir.
Resim-5
Carpma isminde oluşturulan fonksiyonda iki farklı değer tanımlanmıştır. Fonksiyon içerisinde ki kod bloğunda ise bu iki değerin çarpılması gerektiği belirtilerek fonksiyon tamamlanmıştır. Fonksiyon kullanıldığı takdirde aşağıdaki gibi bir çıktı üretecektir.
Resim-6
Fonksiyon kullanımı sırasında gerekli parametreler oluşturularak kullanıcının bu parametreleri kullanarak değişkenlere değer atamaları sağlanabilir. Aşağıdaki örnekte parametre kullanımı incelenmiştir;
Resim-7
Parametreler isminde oluşturulan fonksiyon içerisindeki kod bloğunda param kullanılarak parametre tanımlaması başlatılmıştır.
Param kullanımı sonrasında parantez içerisinde yer verilen değişkenler, script çalıştırıldığında parametre olarak kullanılabilecektir.
Bu örnekte aynı zamanda değişkenlere statik değerler atanarak parametre kullanımı olmadan da fonksiyonun döndüreceği sonuçlar incelenecektir.
Yukarıdaki fonksiyon hiçbir parametre olmadan çalıştırıldığı takdirde aşağıdaki çıktı elde edilir;
Resim-8
Görüldüğü gibi parametre kullanımı olmadığı takdirde $ilksayı ve $sonsayi statik değerleri çarpma işlemine sokularak sonuç ekrana yansıtılmıştır.
Resim-9
Fonksiyon içerisinde param kullanıldığı için ilksayi ve sonsayi değerlerine, herhangi bir PowerShell komutuna parametre ekler gibi ( – işareti ile ) değer kullanıcı tarafından eklenebilir. Bu takdirde fonksiyon içerisindeki kod bloğu kullanıcıdan parametre yardımı ile alınan değerler üzerinde çarpma işlemi gerçekleştirecektir.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar