GNU/Linux için Türkçe içerik sağlamak üzere kurulmuş bir platformdur.
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 “0” id 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.
Linux üzerinde kullanılan çeşitli komutların açıklamalarına aşağıdaki listeden ulaşabilirsiniz.