Bash: Functions

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

Next Episode

published on 20.11.2019

Fonksiyonlar, bölümünde argümanlardan kısaca bahsetmiştik. Peki, ya argümanı direkt scriptin dışından userdan ya da farklı bir programdan almamız gerekiyorsa ne yapacağız? Yine fonksiyona argüman gönderir gibi scripte argüman gönderebiliriz. […] ./foobar.sh "foo" "bar" # …

Previous Episode

published on 16.11.2019

Eğer test etmek istediğimiz bir durum varsa if statement kullanırız. Birden fazla durum varsa nested if statement kullanabiliriz ama sayı arttıkça if statement karmaşıklaşacaktır. Burada devreye case giriyor. Syntax’ı basit.

TAG CLOUD