Her dilde kullandığımız, tekrara düşmemek adına kullanılan en temel yapı. Fonksiyonlar, bash scriptinde aşağıdaki örnekteki gibi tanımlanabilir. function
anahtar sözcüğü ardından fonksiyon adı verilir ve küme parantezi içerisinde fonksiyon tanımlanır.
#!/bin/bash
function selamVer {
echo "Hello There!"
}
selamVer # selamVer fonksiyonunu çalıştır.
> Hello There! # Expected output.
Fonksiyona argüman göndermek ise oldukça kolaydır. Fonksiyonu çağırırken, argümanlar sırayla yazılır ve fonksiyon içerisinde istenilen argümana sırayla “$1, $2, …, $n” şeklinde ulaşılabilir.
#!/bin/bash
function selamVer {
echo "Hello There, $1!"
}
selamVer "General Kenobi" # selamVer fonksiyonunu çalıştır ve "General Kenobi"yi 1. argüman olarak gönder.
> Hello There, General Kenobi! # Expected output.
Birazcık daha güzel bir script ile örneklendirelim.
#!/bin/bash
function numberThings {
i=1
for f in $@; do
echo "$i: $f"
((i++))
done
}
numberThings "The SENATE" "kenobi the high ground keeper" "Anakin the Youngling Slayer"
Burada $@
özel karakterinin görevini belirtmek gerekir. Tüm argümanlarını içeren bir dizidir. $#
ise burada kullanılmıyor ama argüman dizisinin eleman sayısını verir.
> 1: The SENATE
> 2: kenobi the high ground keeper
> 3: Anakin the Youngling Slayer