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 Linux Command Line & Bash Scripting Mastery 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, Linux Command Line & Bash Scripting Mastery öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Linux Command Line & Bash Scripting Mastery 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_inputveyacreate_backupgibi açıklayıcı adlar kullanın. localKullanın: Çakışmaları önlemek için işlevlerin içindeki değişkenlerde her zamanlocalkullanı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
localkullanma. $1,$#,$@ile bağımsız değişken aktarma.returnile çıkış durumu ayarlama.echove 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 Linux Command Line & Bash Scripting Mastery kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Linux Command Line & Bash Scripting Mastery 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. Linux Command Line & Bash Scripting Mastery 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.
Linux Command Line & Bash Scripting Mastery öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Linux Command Line & Bash Scripting Mastery, 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 Linux Command Line & Bash Scripting Mastery dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Linux Command Line & Bash Scripting Mastery 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
- Döngü Yapıları (for, while)
- Bash Betiklerinde İşlevler
- Betik Bağımsız Değişkenleri ve Seçenekleri ($@, $#, getopts)
- case İfadesi ve Örüntü Eşleştirme