0Pricing
DevOps Bootcamp · Ders

Bash Betiklerinde İşlevler

Kodunuzu işlevlerle düzenleyerek yeniden kullanılabilirliği artırın ve betiklerinizi daha temiz, okunabilir ve bakımı kolay hâle getirin.

Bash Betiklerinde İşlevler, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Bash İşlevleri Nedir?

Bash betiklerinde işlev, belirli bir görevi gerçekleştiren kod bloğudur. Bunu ana betiğinizin içindeki küçük bir betik gibi düşünebilirsiniz.

İşlevler şunları yapmanıza yardımcı olur:

  • Kodu Yeniden Kullanma: Bir mantık parçasını bir kez yazıp birden çok kez çağırabilirsiniz.
  • Betikleri Düzenleme: Karmaşık görevleri daha küçük ve yönetilebilir birimlere ayırabilirsiniz.
  • Okunabilirliği Artırma: Betiğinizin anlaşılmasını ve bakımını kolaylaştırır.

Basit Bir İşlev Tanımlama

Bash'te bir işlev tanımlamanın iki yaygın yolu vardır. İkisi de aynı sonucu verir. En yaygın kullanılanı ilk sözdizimidir.

Bu örneği çalıştırmayı deneyin. Örnek işlevleri tanımlar, ancak henüz çağırmaz!

#!/bin/bash

# Method 1: The most common way
my_first_func () {
  echo "Hello from my_first_func!"
}

# Method 2: Using the 'function' keyword
function my_second_func {
  echo "Hello from my_second_func!"
}

echo "Functions defined, but not called."

İşlevlerinizi Çağırma

Bir işlevi tanımlamak onu çalıştırmaz. Bir işlevin içindeki kodu çalıştırmak için, tıpkı diğer komutlarda olduğu gibi işlevi yalnızca adıyla çağırmanız yeterlidir.

Tanımladıktan sonra my_function işlevini nasıl çağırdığımıza bakın:

#!/bin/bash

my_function () {
  echo "This message is from inside the function."
}

echo "Script started."
my_function # Call the function here
echo "Script finished."

İşlevlerde Yerel Değişkenler

Varsayılan olarak, bir Bash işlevinin içinde tanımlanan değişkenler geneldir; yani betiğin herhangi bir yerinden bunlara erişilebilir ve değerleri değiştirilebilir.

İstenmeyen yan etkileri önlemek ve işlevlerinizi yalıtılmış tutmak için bir değişkeni yerel olarak bildirmek üzere local anahtar sözcüğünü kullanın. Yerel değişkenler yalnızca ilgili işlevin içinde var olur.

#!/bin/bash

global_message="I'm a global message"

my_function () {
  local func_message="I'm a local message"
  global_message="I've been changed by the function!"
  echo "Inside func: $func_message"
  echo "Inside func: $global_message"
}

echo "Before func: $global_message"
my_function
echo "After func: $global_message"
echo "After func: $func_message (This will be empty)"

İşlevlere Bağımsız Değişken Aktarma

Tıpkı normal kabuk komutlarında olduğu gibi, bağımsız değişkenleri kullanarak işlevlerinize bilgi aktarabilirsiniz. İşlevin içinde bu bağımsız değişkenlere özel değişkenlerle erişilir:

  • $1, $2, $3...: Tek tek bağımsız değişkenler
  • $#: Toplam bağımsız değişken sayısı
  • $@: Ayrı dizeler olarak tüm bağımsız değişkenler
#!/bin/bash

greet_user () {
  echo "Hello, $1!"
  echo "You are $2 years old."
  echo "Total arguments received: $#"
  echo "All arguments: $@"
}

echo "Calling greet_user with two arguments:"
greet_user "Alice" 30

echo "\nCalling greet_user with one argument:"
greet_user "Bob"

İşlevin Çıkış Durumu (Döndürme)

Her komut gibi bir işlev de bir çıkış durumu döndürür. Geleneksel olarak 0 başarıyı, sıfır dışındaki herhangi bir değer ise bir hatayı belirtir.

Bu çıkış durumunu ayarlamak için return anahtar sözcüğünü kullanırsınız. Ardından işlev çağrısından hemen sonra özel $? değişkenini kullanarak durumu denetleyebilirsiniz.

#!/bin/bash

check_age () {
  local age=$1
  if [ "$age" -ge 18 ]; then
    return 0 # Success: 18 or older
  else
    return 1 # Failure: under 18
  fi
}

check_age 25
echo "Exit status for 25: $?"

check_age 16
echo "Exit status for 16: $?"

if check_age 20; then
  echo "User is an adult."
else
  echo "User is a minor."
fi

İşlev Çıktısını Yakalama

return bir çıkış durumu gönderirken, bir işlevin değişkende saklanabilecek bir 'değer' üretmesini istiyorsanız işlev bu değeri standart çıktıya yazmak için echo kullanmalıdır.

Ardından işlev çağrısını $(...) içine alarak bu çıktıyı komut ikamesi ile yakalarsınız.

#!/bin/bash

get_full_name () {
  local first_name=$1
  local last_name=$2
  echo "$first_name $last_name" # Echo the full name
}

name="$(get_full_name "John" "Doe")"

echo "Full name captured: $name"

calculate_area () {
  local length=$1
  local width=$2
  echo $((length * width))
}

area=$(calculate_area 10 5)
echo "Calculated area: $area"

Uygulamalı Örnek: Günlük Kaydedici

Yeniden kullanılabilir bir işlev için uygulamalı bir örnek verelim: basit bir günlük kaydedici. Bu işlev, zaman damgasıyla birlikte iletileri yazdırmak için betiğinizin herhangi bir yerinde çağrılabilir; böylece hata ayıklama ve izleme kolaylaşır.

#!/bin/bash

log_message () {
  local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
  local message="$1"
  echo "[$timestamp] $message"
}

log_message "Script execution started."
sleep 1 # Simulate some work
log_message "Processing user data..."
sleep 1
log_message "Operation completed successfully."

İşlevler için En İyi Uygulamalar

İşlevlerle açık ve bakımı kolay betikler yazmak için şu ipuçlarını göz önünde bulundurun:

  • Basit Tutun: Her işlev tek bir işi iyi yapmalıdır.
  • Anlamlı Adlar: validate_input veya create_backup gibi açıklayıcı adlar kullanın.
  • local Kullanın: Çakışmaları önlemek için işlevlerin içindeki değişkenlerde her zaman local kullanın.
  • Açıklama Satırları Ekleyin: İşlevinizin ne yaptığını, bağımsız değişkenlerini ve ne döndürdüğünü açıklayın.
  • Girdiyi Doğrulayın: Bir işlev belirli bağımsız değişkenler bekliyorsa bunları denetleyin.

İşlev Bağımsız Değişkenlerini Denetleme

Bağımsız değişkenlerin Bash işlevlerine nasıl aktarıldığını ve işlevlerin içinde bunlara nasıl erişildiğini anlayıp anlamadığınızı test edin.

İşlevler: Özet ve Sonraki Adımlar

Harika iş çıkardınız! Bash işlevlerinde ustalaştınız.

Şunları ele aldık:

  • İşlevleri tanımlama ve çağırma.
  • Değişken kapsamı için local kullanma.
  • $1, $#, $@ ile bağımsız değişken aktarma.
  • return ile çıkış durumu ayarlama.
  • echo ve komut ikamesiyle çıktıyı yakalama.

İşlevler, modüler, yeniden kullanılabilir ve bakımı kolay Bash betikleri yazmak için çok önemlidir. Betiklerinizi daha güçlü ve düzenli hâle getirmek için pratik yapmayı sürdürün!

Sıkça Sorulan Sorular

“Bash Betiklerinde İşlevler” dersi ücretsiz mi?

Evet — “Bash Betiklerinde İşlevler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Bash Betiklerinde İşlevler” dersinde ne öğreneceğim?

Kodunuzu işlevlerle düzenleyerek yeniden kullanılabilirliği artırın ve betiklerinizi daha temiz, okunabilir ve bakımı kolay hâle getirin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Bash Betiklerinde İşlevler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Döngü Yapıları (for, while)
  2. Bash Betiklerinde İşlevler
  3. Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)
  4. case İfadesi ve Örüntü Eşleştirme
← DevOps Bootcamp Sayfasına Dön