%50 indirim tüm planlarda, sınırlı süreyle. Başlangıç fiyatı $2.48/mo
10 dk kaldı
Sunucular ve OS

Bash If Statement: Syntax, Varyasyonlar, 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 deyimi syntax'ı

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 deyimleri 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 deyimi örneklerle

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 Hosting

Web siteni veya uzak masaüstünü barındırmak için piyasanın en uygun fiyatlı ekonomik veya premium Linux VPS'ini al. Daha yüksek verim için Linux KVM üzerinde çalışan ve daha hızlı çalışmak için NVMe SSD depolamalı güçlü donanımda.

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ş

Bloga göz at

Okumaya devam et.

Cosmos paneli etrafında uygulama panellerini gösteren Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar kapak görseli.
Sunucular ve OS

Cosmos Cloud ile Çalıştırabileceğin En İyi Self-Hosted Uygulamalar: Dosyalar, Medya, Şifreler, Otomasyon ve Daha Fazlası!

Belki Cosmos Cloud'u kurdun ve hangi uygulamaların iyi uyduğunu görmek istiyorsun ya da henüz Cosmos'a karar vermedin ve iş akışına ne kadar uyduğunu görmek istiyorsun.

Nick SilverNick Silver 16 dk okuma
Hibrit kurulum diyagramı ve neon ops ile access bloklarını içeren Docker Uygulamalarını Yönetmek için Portainer vs Cosmos Cloud kapak görseli.
Sunucular ve OS

Portainer vs Cosmos Cloud: Docker Uygulama Yönetimi için Uygun Seçim

Docker'ı zaten biliyorsan ve büyüyen bir uygulama stack'ini daha temiz çalıştırmak istiyorsan, Portainer vs Cosmos Cloud için kısa cevap şu: Portainer doğrudan kontrol için daha güçlü bir seçim.

Nick SilverNick Silver 14 dk okuma
Soyut bir bulut ağ dünyasında üç self-hosted yol gösteren Cosmos Cloud vs CasaOS vs Umbrel öne çıkan görseli.
Sunucular ve OS

Cosmos Cloud vs CasaOS vs Umbrel: Hangi Self-Hosted Platform Sana Uygun?

Kısa cevap şu: CasaOS hala başlamak için en kolay yer, Umbrel en temiz seçilmiş hisse sahip, Cosmos Cloud ise alan üzerinde daha sıkı kontrol istediğinde daha mantıklı.

Nick SilverNick Silver 11 dk okuma

Dağıtmaya hazır mısın? 2,48 $/ay'dan başlayan fiyatlarla.

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