Kabuk İşlevleri
Önceki III. Oylum - Temel Kabuk Özellikleri Sonraki
Kabuk İşlevleri
Kabuk işlevleri, komutları isimli bir grup altında toplayıp gerektiğinde basit bir komut olarak grubu ismiyle çağırarak içindeki komutların çalıştırılmasını sağlar. Kabuk işlevleri için bir altkabuk ya da yeni bir süreç oluşturulmaz, içindeki komutlar doğrudan mevcut kabukta yorumlanır.
İşlevler için aşağıdaki sözdizimi uygulanır:
    [ function ] isim () birleşik-komut [ yönlendirmeler ]
Bu, isim isminde bir kabuk işlevi oluşturur. function anahtar sözcüğü isteğe bağlıdır. function kullanılmışsa parantezler isteğe bağlıdır. birleşik-komut işlevin gövdesini oluşturur (bkz, Birleşik Komutlar). Bu komut normal olarak { ile } arasındaki bir komut-listesinden oluşur, fakat evvelce açıklanan birleşik komutlardan biri olabilir. isim bir komut ismi olarak verildiğinde birleşik-komut çalıştırılır. İşlev çalıştırılırken işlevle ilişkilendirilmiş yönlendirmeler de uygulanır.
Bir işlev tanımı unset yerleşiğinin -f seçeneğinde kullanılarak silinebilir (bkz, unset Yerleşiği).
İşlev tanımının dönüş durumu bir sözdizimi hatası veya aynı isimde bir işlev olmadıkça sıfırdır. İşlev çalıştırıldığında, işlevin dönüş durumu gövdesindeki komutlardan sonuncusunun dönüş durumu olur.
Tarihsel sebeplerle, kaşlı ayraçlar anahtar sözcük olduklarından dolayı kaşlı ayraç olarak işlenebilmeleri için diğer sözcüklerden boşluklarla ya da satırsonu karakterleri ile ayrılmaları gerekir. Ayrıca, kaşlı ayraç kullanımında, komut-listesi bir noktalı virgül, bir & ya da bir satırsonu karakteri ile sonlandırılmalıdır.
Bir işlev çalıştırılırken, argümanları Konumsal Parametreler olarak işlenir. Özel parametre olan # kullanılarak konumsal parametrenin konumu değiştirilebilir. Ancak, 0. konumsal parametre değiştirilemez. İşlevin çalıştırılması sırasında işlevin ismi FUNCNAME değişkeninin ilk elemanında tutulur. declare yerleşiği kullanılarak işlevin trace özelliği belirtilmedikçe veya set yerleşiği ile -o functrace seçeneği etkinleştirilmedikçe DEBUG ve RETURN tuzaklarının miras alınması dışında komut çalıştırma ortamının tüm diğer yönleri bir işlev ile çağrıcısı arasında aynıdır. Ayrıca trap Yerleşiği'ne de bakınız.
Eğer komut listesinde return yerleşik komutu varsa, işlev tamamlandıktan sonra icra işlev çağrısından sonraki komuta geçerek devam eder. RETURN tuzağı ile ilişkilendirilmiş bir komut icra kaldığı yerden devam etmeden önce çalıştırılır. İşlev tamamlandığında, konumsal parametrelerin ve # özel parametresinin değerleri işlev çağrısından önceki değerlerine döndürülür. return ile birlikte bir sayı verilmişse, bu işlevin dönüş durumudur; verilmemişse return komutundan önceki son çalıştırılan komutun çıkış durumu işlevin dönüş durumudur.
İşleve özel değişkenler local yerleşiği ile belirtilebilir. Bu değişkenler sadece işlev ve onun komut listesindeki komutlar için geçerlidir.
İşlev isimleri ve tanımları declare veya typeset yerleşik komutlarının -f seçeneği ile listelenebilir. declare veya typeset komutunun -F seçeneği sadece işlev isimlerini listeleyecektir (eğer extdebug kabuk seçeneği etkinse isteğe bağlı olarak kaynak dosyası ismi ve satır numarasını da). Bu yolla işlevler, export yerleşiğine -f seçeneği belirtilerek altkabuklara otomatik olarak ihraç edilebilir. Aynı isimli kabuk işlevleri ve değişkenleri kabuğun çocuklarına çok sayıda eşdeğer isimli girdinin ortam içinde aktarılmasına sebep olacağına dikkat ediniz. Bunun sorunlara yol açabileceği durumları dikkate alınız.
İşlevler bir diğerinin içinden çağrılabilir. Bu şekilde iç içe çağrılara bir sınırlama getirilmemiştir.
Önceki Üst Ana Başlık Sonraki
Komutların Gruplanması Başlangıç Kabuk Parametreleri
Bir Linux Kitaplığı Sayfası