%50 indirim tüm planlar, sınırlı süre. Başlangıç ​​tarihi: $2.48/mo
11 dakika kaldı
Sunucular ve İşletim Sistemi

Açıklanan Bash İşlevleri: Sözdizimi, Örnekler ve Kullanım Durumları

Kelly Watson By Kelly Watson 11 dakikalık okuma Güncelleme tarihi: 14 Aralık 2025
Bash işlevlerini temsil eden, modüler bir yapı halinde bir araya gelen parlak mavi kod bloklarının soyut 3 boyutlu çizimi

Bash işlevleri ilgili komutları tek bir ad altında gruplandırır. Bu adı çağırdığınızda bloğun tamamı yürütülür. Davranışı özelleştirmek için argümanları iletebilir ve sonuçları iletmek için değerleri döndürebilirsiniz. Bu, kodunuzu temiz ve bakımı kolay tutar.

Linux sunucu ortamlarına dünya çapında hakim olduğundan, Bash işlevlerine hakim olmak artık her zamankinden daha önemli. İşlevler, karmaşık komut dosyalarını temiz, yeniden kullanılabilir otomasyona dönüştürür.

Bu kılavuz, temel söz diziminden ileri düzey kullanım örneklerine kadar size yol gösterir. İşlevleri nasıl bildireceğinizi, parametreleri nasıl aktaracağınızı, dönüş değerlerini nasıl ele alacağınızı öğrenecek ve kendi komut dosyalarınızda kullanabileceğiniz on pratik örneği göreceksiniz.

TL;DR

  • Bash işlevleri, komut dosyalarınız boyunca yeniden kullanabileceğiniz kod blokları olarak adlandırılır
  • İşlevleri kullanarak tanımlayın işlev_adı() { komutlar; } sözdizimi
  • Kullanarak bağımsız değişkenleri iletin $1, $2, $3 konumsal parametreler
  • İşlevler kodun okunabilirliğini, modülerliğini ve bakımını iyileştirir
  • Kullanmak geri dönmek işlevlerden çıkmak ve durum kodlarını iletmek için (0 = başarı, sıfırdan farklı = başarısızlık)
  • İşlevler komut dosyaları arasında aşağıdakiler kullanılarak paylaşılabilir: kaynak or dışa aktarma -f
  • Pratik örnekler arasında dosya yedekleme, disk izleme, giriş doğrulama ve hizmet kontrolü yer alır

Bash Komut Dosyası Nedir?

Bash komut dosyası oluşturmanın otomasyonunu temsil eden, parlayan Bash kodunun kendi yazdığı dijital kaydırmanın 3 boyutlu çizimi.

Bash komut dosyası oluşturma, Bash kabuğunu kullanan bir görev otomasyonu yöntemidir. Linux için varsayılan komut satırı arayüzü görevi görür ve macOS'ta standart bir araç olarak kalır. Bash betiği, Bash betik dilinde kodlanmış, bir terminalde veya bağımsız bir betik dosyası olarak çalıştırılabilen bir programdır.

İle Linux masaüstü kullanımı giderek artıyor ve dünya çapındaki sunucu ortamlarına hakim işletim sistemi nedeniyle, Bash komut dosyası oluşturma becerileri BT profesyonelleri için değerli hale geldi. Dil, Docker, Kubernetes ve CI/CD işlem hatları gibi DevOps araçlarıyla iyi bir şekilde bütünleşir.

Bash komut dosyası oluşturma, basit komutlardan karmaşık otomasyon ve sistem yönetimine kadar görevleri gerçekleştirmenize olanak tanır. Tekrarlanan görevleri otomatikleştirebilir, bakım komut dosyaları geliştirebilir, dağıtım işlem hatları oluşturabilir, yazılım sistemlerini yönetebilir ve verileri yönetebilirsiniz.

Bash İşlevi Nedir?

Solda boş alanla, Bash işlevinin nasıl çalıştığını simgeleyen, dağınık komut satırı verilerinin parlayan bir işlem kapısı tarafından organize edildiğini gösteren fütüristik dijital illüstrasyon.

Bash işlevi, kullanım durumuna bağlı olarak bir Bash betiğinde tanımlanan veya komut isteminde etkileşimli olarak ayarlanan bir dizi komut olarak tanımlanabilir. Bir kez tanımlandıktan sonra, bir Bash işlevi, normal bir kabuk komutu gibi, komut dosyası içinde veya diğer komut dosyalarında birden çok kez çağrılabilir.

Bash işlevleri, karmaşık işlemleri gerçekleştirebilen, kodunuzu düzenleyebilen ve komut dosyalarınızı basitleştirebilen yeniden kullanılabilir kod blokları oluşturmanıza olanak tanır. Argümanları bir Bash işlevine iletebilir ve ardından bunları, işlemleri gerçekleştirmek için işlev içinde kullanabilirsiniz. Bash işlevleri, betiğinizin başka bir yerinde kullanabileceğiniz değerleri döndürür.

Aşağıdakiler de dahil olmak üzere çeşitli özel uygulama stillerini kapsayacaktır: basit_işlev temel mantık için, basit_girişler argüman yönetimi ve gelişmiş yapılar için fibonnaci_recursion.

Bash fonksiyonlarının temelleri otomasyonla çalışan herhangi bir sistem yöneticisi veya DevOps mühendisi için önemlidir. Aşağıdaki bölümlerde bu türlerin her biri ayrıntılı olarak ele alınmaktadır.

Neden Bash İşlevlerini Kullanmalı?

Bash işlevlerinin kullanılmasıyla elde edilen verimliliği ve hızı temsil eden, bir kod makinesini çalıştıran optimizasyon sembollerine sahip parlak mavi dişli.

Artık Bash fonksiyonlarının tanımını ele aldığımıza göre, ana avantajlarını gözden geçirelim. Bu bölüm, işlevlerin en yararlı olduğu yerleri anlamanıza yardımcı olur.

Yeniden kullanılabilirlik

Bir Bash işlevi yaratırsınız ve güçlü bir araca sahip olursunuz. Bir kod bloğunu bir kez yazabilir ve onu betiğinizin içinde, hatta diğer betiklerin içinde birden çok kez yeniden kullanabilirsiniz.

Bu, kodunuzu daha verimli hale getirir ve tekrarlamayı ortadan kaldırarak zaman tasarrufu sağlar. İşlevi yalnızca tek bir yerde değiştirmeniz gerektiğinden kodunuzun bakımını yapmak daha kolay hale gelir.

Okunabilirlik

Karmaşık komut dosyalarının şifresini çözmek zor olabilir. Bash işlevleri, betiğinizi daha küçük, daha yönetilebilir parçalara bölerek bu sorunu çözer.

Her işlev, rolünü açıklayan açıklayıcı bir adla belirli bir amaca hizmet eder. Bu, sizin ve başkalarının kodu daha kolay anlamanıza ve korumanıza yardımcı olur.

Modülerlik

İşlevler kodunuzu düzenler. Mantığı daha küçük modüllere bölebilirsiniz, bu da komut dosyası yapınızı temiz ve yönetimi kolay tutar.

Ve eğer yeni bir özellik eklemeniz gerekiyorsa, bunu betiğinizin diğer bölümleriyle uğraşmadan yapabilirsiniz. İşlevselliği kaldırma veya değiştirme zamanı geldiğinde komut dosyanızın geri kalanı olduğu gibi kalır.

Bash İşlev Parametreleri

İşlevlerinize bağımsız değişkenleri veya parametreleri aktarabilirsiniz. Bu bağımsız değişkenler, işlevlerinizin aldıkları girdilere göre farklı eylemleri uyarlamasına ve gerçekleştirmesine olanak tanır.

Bu, işlevlerinizi daha çok yönlü ve uyarlanabilir hale getirirken birçok olasılığın önünü açar. Benzer kodu birden çok kez yazmak yerine, farklı girdileri işleyen tek bir işlev yazarsınız.

Bash Fonksiyonları Nasıl ve Nerede Kullanılır?

Betik yürütmenin bir fonksiyon bloğuna dallanıp geri döndüğünü gösteren, Bash fonksiyonlarının mantık akışında nasıl kullanıldığını görselleştiren 3 boyutlu cam akış şeması.

Şimdi tanımımızı biraz teknik olarak ele alalım ve Bash fonksiyonlarının nasıl oluşturulacağına dair kısa bir örnekle başlayalım. Aşağıdaki sözdizimi Unix tabanlı ortamlarda kullanılabilir. Windows üzerinde çalışıyorsanız, şunları yapabilirsiniz: Windows 10'a Linux Bash'i yükleyin Bu örnekleri takip etmek için.

Bash İşlevi Oluşturma

Aşağıdaki komut yapısını kullanarak başlayın:

işlev_adı () {

    # komut buraya gelecek

}

 

Fonksiyonu oluşturduktan sonra istediğiniz zaman kodunuzda kullanabilirsiniz. İşte çalışan bir örnek:

selamlaşmak () {

    echo "Merhaba, 1$!"

}

 

Bu işlevi şununla çağırın: Dünyayı selamlıyorum “Merhaba Dünya!” çıktısını almak için $1 işleve iletilen ilk argümanı temsil eder.

Kendi komut dosyalarınızda kullanabileceğiniz birkaç pratik örnek daha:

# Herhangi bir dosyanın yedeğini oluşturun

yedekleme_dosyası () {

    cp “$1” “$1.bak”

    echo “Yedekleme oluşturuldu: $1.bak”

}

 

# Dizin olup olmadığını kontrol edin, yoksa oluşturun

temin_dir () {

    eğer [ ! -d “1$” ]; Daha sonra

        mkdir -p “1$”

        echo “Oluşturulan dizin: $1”

    fi

}

 

# Mesajları zaman damgalarıyla günlüğe kaydet

log_message () {

    echo "[$(tarih '+%Y-%m-%d %H:%M:%S')] $1"

}

 

Bu özel Bash işlevlerini bir kez tanımlarsınız ve komut dosyanız boyunca gerektiğinde bunları çağırırsınız.

İşlev Söz Dizimi Esasları

İşlevler ana komut dosyanızdaki mini komut dosyaları gibi davranır ancak kabuğun belleğini paylaşırlar. Bunları yazarken bu üç spesifik davranışı aklınızda bulundurun.

Değişken Kapsam (Yerel ve Küresel)

Fonksiyonların içindeki değişkenler varsayılan olarak globaldir. Eğer tanımlarsan my_var=”test” bir fonksiyonun içinde mevcut olan her şeyi geçersiz kılar my_var senaryonuzda. Her zaman kullan yerel değişkenleri fonksiyonla sınırlandırmak yan etkileri önler:

yerel my_var=”değer”

Konumsal Parametreler

İşlevler argümanları aynı yöntemi kullanarak okur $1, $2, Ve $@ değişkenleri komut dosyaları olarak kullanın. Bunlar fonksiyon için yereldir ve fonksiyondan çıkıldığında sıfırlanır. Komut dosyasının orijinal argümanlarına, siz açıkça iletmediğiniz sürece fonksiyonun içinden erişilemez.

Dönüş Değerleri

Bash işlevleri, Python veya JavaScript işlevleri gibi verileri döndürmez. geri dönmek komut yalnızca başarıyı veya başarısızlığı belirtmek için bir çıkış durumunu (0-255) ayarlar. Gerçek verileri (bir dize veya hesaplama gibi) döndürmek için, yankı sonucu alın ve işlevi çağırırken yakalayın:

sonuç=$(my_function)

En Faydalı 10 Bash Fonksiyonu Örneği

Artık Bash işlevlerini ve bunların nasıl oluşturulacağını anladığınıza göre, komut dosyalarınıza ekleyebileceğiniz on pratik örneği burada bulabilirsiniz. Her işlev ortak bir sorunu çözer ve uygun yapıyı, bağımsız değişkenleri ve dönüş değerlerini gösterir.

1. Dosya Yedekleme İşlevi

Herhangi bir dosyanın zaman damgalı yedeğini oluşturur:

yedekleme_dosyası () {

    yerel dosya=”$1″

    local backup=”${file}.$(date +%Y%m%d_%H%M%S).bak”

    

    if [ -f “$dosya” ]; Daha sonra

        cp “$dosya” “$yedek”

        echo “Yedekleme oluşturuldu: $backup”

        0'a dön

    başka

        echo “Hata: Dosya bulunamadı”

        dönüş 1

    fi

}

 

Kullanımı: backup_file /etc/nginx/nginx.conf

2. Dizin Denetleyicisi

Bir dizinin var olup olmadığını kontrol eder ve gerekirse onu oluşturur:

temin_dir () {

    yerel dizin=”$1″

    

    eğer [ ! -d “$dir” ]; Daha sonra

        mkdir -p “$dir”

        echo “Oluşturuldu: $dir”

    fi

}

 

Kullanımı: sure_dir /var/log/uygulamam

3. Zaman Damgalı Kaydedici

Hata ayıklama amacıyla günlük iletilerine zaman damgaları ekler:

log_message () {

    yerel düzey=”$1″

    yerel mesaj=”$2″

    echo “[$(tarih ‘+%Y-%m-%d %H:%M:%S’)] [$seviye] $mesaj”

}

 

Kullanımı: log_message “BİLGİ” “Komut dosyası başlatıldı”

4. Disk Alanı Monitörü

Disk kullanımını kontrol eder ve bir eşiği aştığında uyarır:

check_disk_space () {

    yerel eşik=”${1:-80}”

    yerel kullanım=$(df / | tail -1 | awk '{print $5}' | tr -d '%')

    

    if [ “$kullanım” -gt “$eşik” ]; Daha sonra

        echo “Uyarı: ${usage}% oranında disk kullanımı”

        dönüş 1

    fi

    0'a dön

}

 

Kullanımı: check_disk_space 90

5. Giriş Doğrulayıcı

Kullanıcı girişinin boş olmadığını doğrular:

validate_input () {

    yerel giriş=”$1″

    yerel ad=”$2″

    

    if [ -z “$giriş” ]; Daha sonra

        echo "Hata: $isim boş olamaz"

        dönüş 1

    fi

    0'a dön

}

 

Kullanımı: validate_input “$kullanıcıadı” “Kullanıcı adı”

6. Hizmet Durumu Denetleyicisi

Bir hizmetin çalışıp çalışmadığını kontrol eder ve durumu bildirir:

check_service () {

    yerel hizmet=”$1″

    

    eğer systemctl aktif ise –quiet “$service”; Daha sonra

        echo “$hizmet çalışıyor”

        0'a dön

    başka

        echo “$hizmet çalışmıyor”

        dönüş 1

    fi

}

 

Kullanımı: check_service nginx

7. Dosya Uzantısı Çıkarıcı

Uzantıyı bir dosya adından çıkarır:

get_extension () {

    yerel dosya adı=”$1″

    echo “${dosyaadı##*.}”

}

 

Kullanımı: ext=$(get_extension “belge.pdf”)

8. İp Düzeltici

Dizelerin başındaki ve sonundaki boşlukları kaldırır:

trim_string () {

    yerel str=”$1″

    str=”${str#”${str%%[![:space:]]*}”}”

    str=”${str%”${str##*[![:space:]]}”}”

    yankı “$str”

}

 

Kullanımı: clean=$(trim_string ” merhaba dünya “)

9. Güvenli Dosya Arşivleyici

Bir dosyayı kalıcı olarak silmek yerine özel bir $HOME/.trash dizinine taşır. Önceki yedeklemelerin üzerine yazılmasını önlemek için dosya adına bir zaman damgası ekler.

Safe_remove() {

    yerel dosya=”$1″

    yerel çöp=”$HOME/.trash”

    # Mevcut dosyaların üzerine yazılmasını önlemek için zaman damgası ekleyin

    local new_name=”$(temel adı “$dosya”)_$(tarih +%s)”

    

    mkdir -p “$çöp kutusu”

 

    if [ -e “$dosya” ]; Daha sonra

        mv “$dosya” “$çöp/$yeni_ad”

        echo “Arşiv'e taşındı: $file -> $trash/$new_name”

    başka

        echo "Hata: $dosya bulunamadı"

        dönüş 1

    fi

}

 

Kullanımı: Safe_remove old_script.sh

 

10. Durum Raportörü

Hata işleme için Bash işlevi dönüş mekanizmasını gösterir. Bash işlevinin dönüş değeri başarıyı (0) veya başarısızlığı (sıfırdan farklı) gösterir:

süreç_verileri () {

    yerel dosya=”$1″

    

    eğer [ ! -f “$dosya” ]; Daha sonra

        dönüş 1

    fi

    

    # Dosyayı işle

    kedi “$dosya” | tuvalet -l

    0'a dön

}

 

# Dönüş değerini kontrol et

proses_data “veri.txt”

eğer [ $? -eq 0 ]; Daha sonra

    echo "İşlem tamamlandı"

başka

    echo "İşleme başarısız oldu"

fi

 

The $? değişken son komut veya işlev çağrısından çıkış durumunu yakalar.

İşlev Amaç Temel Özellik
yedekleme_dosyası Dosya yedekleri oluşturun Zaman damgalı adlandırma
temin_dir Dizin yönetimi Eksikse oluşturur
log_message Günlüğe kaydetme Zaman damgası öneki
check_disk_space Sistem izleme Eşik uyarıları
validate_input Giriş doğrulama Boş dize kontrolü
check_service Servis izleme Sistemd entegrasyonu
get_extension Dize ayrıştırma Parametre genişletme
trim_string Dize temizleme Boşluk kaldırma
Safe_remove Güvenli silme Çöp dizini
süreç_verileri Hata işleme Dönüş değerleri

Bash İşlevlerini VPS'de Çalıştırma

Bash işlevleri, özel bir sunucu ortamında çalıştırıldığında güçlü hale gelir. Bizim Linux VPS'si kabuk ortamınızı özelleştirmeniz, sistem çapında işlev kitaplıkları oluşturmanız ve sunucu yönetimi görevlerini kısıtlama olmaksızın otomatikleştirmeniz için size tam kök erişimi sağlar.

VPS ile yeniden kullanılabilir işlevleri depolayabilirsiniz. /etc/profile.d/ tüm kullanıcılar için cron işleri aracılığıyla işlev tabanlı komut dosyaları planlayın ve dağıtım ve bakım için otomasyon işlem hatları oluşturun. 12 küresel konumda, 40 Gbps'ye kadar ağ hızlarına ve DDR5 belleğe sahip sunucular sunuyoruz; bu, daha hızlı komut dosyası yürütme ve daha sorunsuz veri işleme anlamına gelir.

Bu düzeydeki kontrol, VPS'yi kabuk komut dosyası oluşturma ve sistem otomasyonu konusunda ciddi olan herkes için ideal kılar.

Çözüm

Bash işlevleri, modüler ve yeniden kullanılabilir komut dosyaları oluşturmanın anahtarıdır. İlgili komutları bir arada gruplamanıza ve kodunuzun okunmasını ve bakımını kolaylaştırmak için karmaşık mantığı kapsüllemenize olanak tanır. Bulut altyapısını yönetiyorsanız, dağıtım hatlarını otomatikleştiriyorsanız veya rutin sistem yönetimi görevlerini yürütüyorsanız işlevler, komut dosyalarınızın düzenli ve verimli kalmasına yardımcı olur.

Bu makalede, kendi otomasyon projelerinize başlamanıza yardımcı olacak, bunların nasıl tanımlanacağı ve çağrılacağı da dahil olmak üzere Bash fonksiyonlarının temellerini, on pratik fonksiyon örneğini ve yaygın kullanım örneklerini ele aldık.

gibi kontrol yapılarıyla birleştirilmiştir. Bash if ifadesi, işlevler size güçlü otomasyon için yapı taşlarını sağlar. Betiklerinizde Bash işlevlerini kullanarak anlaşılması ve bakımı daha kolay, daha temiz, daha modüler kod yazabilirsiniz.

SSS

Bash fonksiyonlarının yerel değişkenleri olabilir mi?

Evet. Bash işlevleri, local anahtar sözcüğünü kullanan yerel değişkenlere sahip olabilir. Bu, değişkenin kapsamını işlevle sınırlandırır ve işlevin dışındaki aynı adı taşıyan değişkenleri etkilemesini engeller.

Bash işlevleri yinelemeli olabilir mi?

Evet, Bash işlevleri yinelemeli olabilir. Bash'in varsayılan çağrı yığını boyutu nispeten küçük olduğundan, aklınızdaki özyinelemeli işlevlere bağlı olarak, yürütmeden önce ulimit -s komutunu kullanarak bunu artırmanız gerekebilir.

Bash işlevlerini diğer komut dosyalarında kullanabilir miyim?

Evet, source komutunu (veya kısayolunu) kullanarak Bash işlevlerini komut dosyaları arasında paylaşabilirsiniz. İşlev tanımlarınızı içeren bir dosya sağlayarak, bu işlevleri çağıran komut dosyasında kullanılabilir hale getirirsiniz. Alt işlemlerde, işlevi erişilebilir kılmak için Export -f işlev_adı komutunu kullanın.

Bash işlevlerini ardışık düzenlerde kullanabilir miyim?

Evet, ancak harici komutlar için belirli adımlar gerekir. Bir komut dosyasının içinde verileri doğrudan bir işleve aktarabilirsiniz (örneğin, cat dosyası | my_function). Ancak xargs veya find -exec gibi komutlar yeni bir ortamda çalışır. Burada bir işlevi kullanmak için, onu dışa aktarmanız (export -f my_func) ve ardından açıkça Bash'i çağırmanız (örneğin, xargs bash -c 'my_func “$@”') gerekir.

Kabuk komut dosyası işlevi nedir?

Kabuk komut dosyası işlevi, belirli bir amaca hizmet eden ve komut dosyasının çeşitli bölümlerinden çağrılabilen, bir kabuk komut dosyası içindeki tanımlanmış bir kod bloğudur. İşlevler, kod modülerliği, daha iyi yeniden kullanılabilirlik ve daha kolay bakım açısından büyük değer sunar. Bash komut dosyası oluşturma bağlamında, işlevler genel komut dosyası içinde kapsüllenir.

Paylaşmak

Blogdan daha fazlası

Okumaya devam edin.

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Kendine Barındırılan Uygulamalar Cosmos kontrol panelinin etrafındaki uygulama panellerini içeren kapak resmi.
Sunucular ve İşletim Sistemi

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Kendine Barındırılan Uygulamalar: Dosyalar, Medya, Parolalar, Otomasyon ve Daha Fazlası!

Belki Cosmos Cloud'u kurdunuz ve şimdi hangi uygulamaların onunla iyi eşleştiğini görmek istiyorsunuz ya da belki henüz Cosmos'a karar vermediniz ve sadece işinize ne kadar iyi uyduğunu görmek istiyorsunuz.

Nick GümüşNick Gümüş 16 dakikalık okuma
Docker Uygulamalarını Yönetmek için Portainer ve Cosmos Cloud, hibrit kurulum şeması ve neon operasyonlar ve erişim blokları ile kapsıyor.
Sunucular ve İşletim Sistemi

Portainer ve Cosmos Cloud: Docker Uygulama Yönetimi için En İyi Uyum

Docker'ı zaten biliyorsanız ve büyüyen bir uygulama yığınını çalıştırmanın daha temiz bir yolunu istiyorsanız işte Portainer ve Cosmos Cloud'un kısa yanıtı. Portainer yönetmenlik için daha güçlü bir seçim

Nick GümüşNick Gümüş 14 dakikalık okuma
Cosmos Cloud, CasaOS ve Umbrel karşılaştırması, soyut bir bulut ağı dünyasında kendi kendine barındırılan üç yolu gösteren grafik özelliği.
Sunucular ve İşletim Sistemi

Cosmos Cloud, CasaOS ve Umbrel: Hangi Kendi Kendine Barındırılan Platform Kurulumunuza Uygun?

Kısa cevap, CasaOS'un hala başlamak için en kolay yer olduğu, Umbrel'in en temiz küratörlük hissine sahip olduğu ve Cosmos Cloud'un, doma üzerinde daha sıkı kontrol istediğinizde daha mantıklı olduğudur.

Nick GümüşNick Gümüş 11 dakikalık okuma

Dağıtıma hazır mısınız? Aylık 2,48dan başlayan fiyatlarla.

Bağımsız bulut, 2008'den beri. AMD EPYC, NVMe, 40 Gbps. 14 gün içinde para iadesi.