Linux Dersleri
🎓 Eğitimler 🗃️ Blog 📜 Komut Listesi 🎯 Test 🏷️ Etiketler 💖 Faydalı Kaynaklar 🐧 Hakkında 📮 Geri Bildirim
Mobil Uygulamalar
Image
    Google Play Google Play

Linux Dersleri |

GNU/Linux için Türkçe içerik sağlamak üzere kurulmuş bir platformdur.

bash return

return Komutu

2 dk. Taylan Özgür Bildik

return komutu, bir kabuk fonksiyonundan çıkmak için kullanılır. Eğer return komutuyla birlikte çıkış değeri de belirtilirse ilgili değer fonksiyonun çıkış kodu(exit code) olarak basılır. Eğer herhangi bir çıkış kodu özellikle belirtilmezse, o zaman fonksiyon içerisinde yürütülmüş olan son komutun durumunu döndürür. Denemek için betik dosyasının root yetkisi ile çalıştırılıp çalıştırılmadığını kontrol edelim.

#!/bin/bash
# Amaç: Mevcut kullanıcının root olup olmadığını belirlemek 
root_hesabi () { 
 # root kullanıcının kullanıcı kimliği(UID) sıfırdır. 
 [  $( id -u ) -eq 0  ]  &&  return 0  ||  return 1 
}

root_hesabi &&  echo  "Bu betiği çalıştırabilirsiniz."  ||  echo  "Bu komut dosyasını root kullanıcı olarak çalıştırmanız gerekiyor."
┌──(taylan㉿linuxdersleri)-[~]
└─$ ./betik.sh 
Bu komut dosyasını root kullanıcı olarak çalıştırmanız gerekiyor.

┌──(taylan㉿linuxdersleri)-[~]
└─$ sudo ./betik.sh 
[sudo] password for taylan: 
Bu betiği çalıştırabilirsiniz.

Betik dosyası içeriğini incelediğimizde sistem üzerindeki “0id numarasına sahip olan tek kullanıcı root olabileceği için bu koşul sağlandığında çıkış kodu olarak “0” değerini döndürüyoruz. Aksi halde “1” değeri döndürülüyor. İşte bu basit örneğimizde olduğu gibi return komutunu, fonksiyonun çıkış durumunu belirtmek için kullanabiliyoruz.

exit ve return Arasındaki Fark Nedir ?

Genellikle karıştırılmaya müsait olan birbirine benzer işlevdeki exit ve return komutları arasındaki fark;

exit komutu mevcut kabuğu sonlandırma işlevindeyken, return komutu mevcut fonksiyondan çıkmak için kullanılır yani kabuğu sonlandırmaz. Bu durumu aşağıdaki örneğe bakarak da teyit edebilirsiniz.

#!/bin/bash

donus()
{
    echo "Ben 'return' içeren fonksiyonum"
    return 1
}

cikis()
{
    echo "Ben 'exit' içeren fonksiyonum"
    exit 1
}

donus
echo "Çalışmaya devam.."
cikis
echo "Kabuk kapandığı için bu ifadeyi göremeyeceksiniz."
donus
echo "Çalışmaya devam.."

Betik dosyası çalıştırıldığında üretilen çıktılar;

┌──(taylan㉿linuxdersleri)-[~]
└─$ ./betik.sh 
Ben 'return' içeren fonksiyonum
Çalışmaya devam..
Ben 'exit' içeren fonksiyonum

┌──(taylan㉿linuxdersleri)-[~]
└─$

return ile bitirilen ilk “donus()” fonksiyonundan sonra, ikinci fonksiyon olan “cikis()” fonksiyonunun çalıştırılıyorken, exit ile bitiren fonksiyondan sonra betik dosyasını çalıştıran kabuğun sonlandırıldığını buradaki çıktılardan görebiliyoruz. Bu örnek return ile exit arasındaki farkı net bir biçimde izah ediyor.

📮 Hata, eksik ve öneri bildirimlerinizi buradan iletebilirsiniz.

Video Eğitim

Linux'u temel seviyede öğrenmek isterseniz, video, doküman, test, alıştırmalar ve soru-cevap imkanları sunan kursa katılabilirsiniz.

Linux üzerinde kullanılan çeşitli komutların açıklamalarına aşağıdaki listeden ulaşabilirsiniz.