%50 indirim tüm planlarda, sınırlı süre. Başlangıç fiyatı $2.48/mo
10 dakika kaldı
Sunucular ve İşletim Sistemleri

Bash If Deyimi: Sözdizimi, Kullanım Biçimleri, Kullanım Senaryoları, Komutlar ve Daha Fazlası!

Pius Bodenmann By Pius Bodenmann 10 dk okuma 28 Ocak 2024'te güncellendi
bash komut dosyası

Shell betik yazımında Bash if ifadeleri, programcıların farklı durumlara göre koşullu çalışma yolları oluşturmasına olanak tanıyarak kritik bir rol üstlenir. Temel olarak if ifadeleri, test sonuçları, kullanıcı girdisi veya sistem durumu gibi faktörleri göz önünde bulundurarak Bash betiklerinde karar almayı mümkün kılar. Farklı olasılıklar arasında yol bulmayı sağlayan bir mekanizma gibi düşünülebilir.

Bash betiği yazarken if ifadesi belirli bir yapıya sahiptir. Genellikle "if" anahtar kelimesiyle başlar, ardından değerlendirilecek koşul, "o zaman" anahtar kelimesi ve koşul doğruysa çalıştırılacak bir veya daha fazla komut gelir.

Esnekliği artırmak için if ifadesi isteğe bağlı bir "elifİlk koşulun yanlış olduğu durumlarda devreye giren "else if" ifadesi, ek bir koşulu test etmemize ve sonuca göre devam etmemize olanak tanır. Ayrıca if ifadesine isteğe bağlı bir "else" bloğu eklenebilir; bu blok, hiçbir koşulun sağlanmadığı durumlarda çalışır.

if ifadelerini diğer Bash komutları ve kabuk betiği özellikleriyle bir araya getirerek, geliştiriciler karmaşık görev ve süreçleri otomatikleştirebilen ileri düzey betikler yazabilir. Bash if ifadesinin sözdizimi, kullanım senaryoları ve örnekleri hakkında daha fazla bilgi edinmek için okumaya devam edin!

Bash If İfadesi Sözdizimi

Bash söz dizimi, Bash kabuk dilinde yazılan komutların ve betiklerin yapısını ve gramerini belirleyen kurallar bütünüdür. Bash söz dizimi; değişkenler, döngüler, koşullar ve işlevler gibi çeşitli yapı ve öğeler içerir:

  • Komutlar: Bunlar, belirli görevleri yerine getirmek için kullanılan bağımsız çalıştırılabilir programlar veya kabuk yerleşik komutlarıdır. Bash programlamayla geçirdiğiniz zamanın büyük bölümünü bu satırlarla harcayacaksınız.
  • Argümanlar: Bunlar, komutlara seçenekler, parametreler veya giriş verisi belirtmek için iletilen değerlerdir. Bir komutun nasıl çalışacağını belirleyen koşullar olarak düşünebilirsiniz.
  • Değişkenler: Bunlar, atanabilen, değiştirilebilen veya ifadelerde kullanılabilen değerleri temsil eden sembollerdir. Komutların ve argümanların hangi değerlerle çalışacağını belirlemek için yaygın olarak kullanılırlar.
  • Yönlendirme: Bu, girdi, çıktı veya hataları dosyalara, aygıtlara ya da diğer komutlara yönlendirme işlemidir. Bunu doğru yapmadan komutlarınız yanlış hedefe gidebilir ve kodunuzu bozabilir.
  • Pipe'lar: Bu, bir komutun çıktısını başka bir komutun girdisine bağlamaya yarayan bir mekanizmadır. Genellikle büyük programlarda gelişmiş koşullu komut satırları oluşturmak ve komutları birbirine zincirlemek için kullanılır.
  • Kontrol yapıları: Bunlar döngüler, koşullar ve fonksiyonlar gibi komutların çalışma akışını yöneten yapılardır. Kontrol yapılarını anlamak, özgün komut satırları oluşturmanın temelini atar ve kodunuza bambaşka bir derinlik katar.
  • Yorumlar: Bunlar, kabuk tarafından yok sayılan ve kodun belgelenmesi ya da açıklanması amacıyla kullanılan açıklamalardır. Özellikle grup projelerinde analiz ve hata ayıklama süreçlerinde önemli referans noktaları oluştururlar.

Bash sözdizimi, komutların kabuk tarafından doğru şekilde yorumlanıp çalıştırılabilmesi için kurallara uygun yazılmalıdır. Sözdizimi hataları, kabuğun hata mesajları üretmesine veya beklenmedik davranışlar sergilemesine yol açabilir.

İşte Bash if ifadesinin kullanımına bir örnek:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

Burada ele aldığımız durumda "koşul", true ya da false sonuç üreten bir testi ifade eder. Koşul true olduğunda, "then" anahtar sözcüğünden sonra belirtilen komutlar çalıştırılır. Peki ya farklı bir koşulu değerlendirmek istersek? Bunun için "elif" anahtar sözcüğünü kullanırız. Bu, başka bir olasılığı ele almanın yoludur. Hiçbir koşul sağlanmazsa devreye "else" bloğu girer; bu bir tür yedek plandır. Son olarak, if ifadesinin bittiğini belirtmek için "fi" anahtar sözcüğünü kullanırız.

Bash İfadeleri Nasıl Çalışır?

Bash betikleme söz konusu olduğunda, if ifadesi bir koşul testinin sonucuna göre betiğin akışını yönlendirmek için oldukça kullanışlıdır. Temel amacı bir koşulu değerlendirmek ve koşul doğruysa belirli bir komut dizisini çalıştırmaktır.

Bir Bash betiğinde if ifadesi devreye girdiğinde süreç genellikle şöyle işler: Betik, if ifadesinde belirtilen koşulu değerlendirir. Koşul doğruysa, "then" bloğundaki komutlar sırayla çalıştırılır.

Koşul yanlışsa betik, varsa elif koşullarını sırayla değerlendirir. Bu koşullardan biri doğruysa, ilgili elif bloğundaki komutlar çalıştırılır. if ve elif ifadelerindeki koşulların hiçbiri doğru değilse betik, else bloğunu çalıştırır (eğer bir else bloğu tanımlanmışsa).

if ifadesi, bir betik içinde karar verme mekanizması olarak çalışır: testin sonucuna göre farklı yürütme yollarından birini seçer. Test; bir komutun çıktısı veya bir değişkene atanan değer gibi çeşitli faktörleri göz önünde bulundurabilir.

Bash If İfadesi: Örneklerle Açıklama

Temel teoriden çıkıp Bash if ifadesinin gerçek bir geliştirme sürecinde nasıl kullanıldığına bakalım. Aşağıdaki örnek, Bash if ifadesinin nasıl çalıştığını göstermektedir:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

Bu örnekte if ifadesi, x değişkeninin değerini kontrol eder. x, 4'ten büyükse betik "x is greater than 4" yazdıran komutu çalıştırır. x, 4'e eşit veya küçükse betik "x is less than or equal to 4" yazdıran komutu çalıştırır.

Temel Bash if ifadesini ve nasıl çalıştığını öğrendiğinize göre şimdi daha derine inelim. Temel If İfadeleri, İç İçe If İfadeleri, Bash If Else, If Elif Else ve Case İfadelerini tek tek ele alacağız.

Temel If İfadeleri

Temel Bash if ifadesiyle başlayalım. Bash'teki if ifadesi bir koşulun doğru olup olmadığını kontrol eder ve sonuca göre ilgili kod bloğunu çalıştırır. Sözdizimi şöyledir:

if [ condition ]
then
  commands
fi

Bu kullanımda betik koşulu değerlendirir; koşul doğruysa belirtilen komutlar çalıştırılır. Koşul yanlışsa betik, "then" bölümündeki bloğu atlar ve bir sonraki komutla devam eder.

İç İçe If İfadeleri

İç içe if ifadesi, adından da anlaşılacağı gibi, bir if ifadesinin başka bir if ifadesinin içine yerleştirilmesidir. Bu yapı, bir betik içinde daha karmaşık testler ve analizler yapmaya olanak tanır. İşte bir örnek:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Komutlara bakıldığında betik önce condition1'i değerlendirir. condition1 doğruysa bu kez condition2'yi değerlendirir. condition2 de doğruysa betik gerekli komutları çalıştırır.

Bash If Else İfadeleri

Bash if else ifadesi, bir koşulun doğru ya da yanlış olmasına göre betiğinizin farklı yollar izlemesini sağlar ve daha gelişmiş koşullu kod çalıştırmaya imkan tanır. Yapının görünümü şöyle:

if [ condition ]
then
  commands1
else
  commands2
fi

Bu yapıda koşul doğruysa betiğiniz "commands1"i çalıştırır. Koşul yanlışsa "commands2"ye geçer.

If Elif Else İfadeleri

Bazen birden fazla koşulu ve her birinin sonucunu ayrı ayrı ele almanız gerekir. if elif else ifadesi tam olarak bunu yapmanızı sağlar. Aşağıdaki sözdizimine bakın:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Betik önce condition1'i değerlendirir. condition1 doğruysa commands1'i çalıştırır. condition1 yanlışsa condition2'ye geçer. condition2 doğruysa commands2'yi çalıştırır. Her iki koşul da yanlışsa betik alternatif yola gider ve commands3'ü çalıştırır.

Case İfadeleri

Bash'teki case ifadesi, diğer programlama dillerindeki switch ifadesine benzer biçimde çalışır. Bir değişkenin değerine göre farklı komut bloklarını çalıştırmanın düzenli bir yolunu sunar. Yapıya bir göz atın:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Burada betik, expression değişkenini çeşitli desenlerle karşılaştırır. Eşleşen bir desen bulunduğunda ilgili komut bloğu çalıştırılır. Hiçbir desen eşleşmezse varsayılan komutlar devreye girer. Yıldız (*) deseni joker karakter olarak görev yapar ve daha önce eşleşmemiş her şeyi yakalar.

Bash Mantıksal Operatörleri

Bash if ifadesinin önemli bir parçası da mantıksal operatörlerdir. Bu operatörler birden fazla koşulu bir araya getirmenize ve bu birleşik koşulların doğruluğuna göre karar vermenize olanak tanır. Bash, if ifadelerinde kullanım için üç temel mantıksal operatör sunar. Aşağıda üç ana mantıksal operatör komutuna ait örnekler verilmiştir.

  • Bash VE (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Mantıksal OR (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Eşit Değil:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Sonuç

Bu blog yazısında, Bash if ifadelerine ve bunların nasıl kullanılacağına dair giriş niteliğinde bir rehber sunduk. Koşullu ifadelerin kodunuzu nasıl daha düzenli ve işlevsel hale getirebildiğini de ele aldık. Bu yapıları etkili biçimde kullanarak karmaşık görevleri ve karar süreçlerini yönetebilen güçlü betikler yazabilirsiniz.

Linux dünyasına yeni misiniz? Bu heyecan verici yolculukta size rehberlik etmek için buradayız! Sunduğumuz Linux VPS yeni başlayanlar için ideal bir başlangıç noktasıdır: güç kaybetmeden sadeliği ön plana çıkarır. Kullanıcı dostu arayüzler ve uzman desteğiyle bir Linux sunucusunun tüm olanaklarından yararlanmak hiç bu kadar kolay olmamıştı. İster bir web sitesi kuruyor, ister uygulamalar test ediyor, ister Linux dünyasını keşfediyor olun; Linux VPS'miz güvenli ve sorunsuz bir ortam sağlar. Linux evrenine güvenle adım atın: bugün Linux VPS seçeneklerimizi inceleyin ve maceraya başlayın!

Linux VPS Barındırma

Web sitenizi veya uzak masaüstünüzü barındırmak için ekonomik ya da premium bir Linux VPS edinin; piyasadaki en uygun fiyatlarla. VPS, daha yüksek verimlilik için Linux KVM üzerinde çalışır ve hız odaklı NVMe SSD depolama ile güçlü donanım altyapısından yararlanır.

Devamını Oku

SSS

Bash if ifadelerinde mantıksal operatörler kullanabilir miyim?

Evet, Bash if ifadelerinde '&' ve '||' gibi mantıksal operatörler kullanabilirsiniz. Örneğin, if [ $var -gt 0 ] && [ $var -lt 10 ]; then … ifadesi, kod bloğunu yalnızca $var değeri 0'dan büyük ve 10'dan küçük olduğunda çalıştırır.

Tek bir if ifadesinde birden fazla koşul kullanabilir miyim?

Evet, mantıksal operatörler olan -a (AND) veya -o (OR) kullanarak tek bir if ifadesinde birden fazla koşulu birleştirebilirsiniz. Örneğin, if [ $var -gt 0 -a $var -lt 10 ]; then … ifadesi, kod bloğunu yalnızca $var değeri 0'dan büyük VE 10'dan küçük olduğunda çalışır.

Bash if ifadelerinde komut ikamesi kullanabilir miyim?

Evet, Bash if ifadelerinde komut değiştirmeyi kullanabilirsiniz. Bunun için komutu $() veya backtick () içine almanız yeterlidir. Örneğin, if [ $(whoami) == "root" ]; then … ifadesi, mevcut kullanıcı root ise kod bloğunu çalıştırır.

[[ vs [ vs ( vs ((: Bu Bash operatörleri arasındaki fark nedir?

Kısaca: [[ gelişmiş koşullu testler için kullanılır. [ temel koşullu testler için kullanılır. ( alt kabuk gruplama ve komut çalıştırma için kullanılır. (( aritmetik işlemler için kullanılır.

 

Paylaş

Blogdan daha fazlası

Okumaya devam et.

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Hostinginizi Yönettiğiniz Uygulamalar - uygulama panelleri ve Cosmos kontrol paneli ile kapak görseli.
Sunucular ve İşletim Sistemleri

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

Maybe Cosmos Cloud kurulumunu tamamladın ve hangi uygulamaların bununla iyi çalıştığını görmek istiyorsun ya da henüz Cosmos'a karar vermemiş olabilirsin ve iş akışına ne kadar uyduğunu öğrenmek istiyorsun

Nick GümüşNick Gümüş 16 dakikalık okuma
Portainer ile Cosmos Cloud'nin Docker Uygulamalarını Yönetmek İçin Karşılaştırması: Hibrit kurulum diyagramı ve neon ops ile erişim bloklarını içeren kapak görseli.
Sunucular ve İşletim Sistemleri

Portainer mı Cosmos Cloud mi: Docker Uygulama Yönetimi İçin Hangisi Daha Uygun?

Docker'yi zaten biliyorsanız ve büyüyen bir uygulama yığınını daha düzenli bir şekilde çalıştırmanın yolunu arıyorsanız, Portainer ile Cosmos Cloud karşılaştırmasının kısa yanıtı şu: Doğrudan yönetim için Portainer daha güçlü bir seçenek.

Nick GümüşNick Gümüş 14 dakika okuma
Cosmos Cloud, CasaOS ve Umbrel özellik görseli: Soyut bir bulut ağı dünyasında üç farklı self-hosted yolu bir arada gösteriyor.
Sunucular ve İşletim Sistemleri

Cosmos Cloud mı, CasaOS mi, Yoksa Umbrel mi: Kurulumunuza En Uygun Self-Hosted Platform Hangisi?

Kısa yanıt şu: CasaOS başlamak için hâlâ en kolay seçenek, Umbrel en temiz ve derli toplu deneyimi sunuyor; Cosmos Cloud ise alan adları ve altyapı üzerinde daha sıkı bir kontrol istediğinizde anlam kazanıyor.

Nick GümüşNick Gümüş 11 dakika okuma

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

2008'den bu yana bağımsız bulut. AMD EPYC, NVMe, 40 Gbps. 14 gün para iade garantisi.