%50 indirim tüm planlar, sınırlı süre. Başlangıç ​​tarihi: $2.48/mo
10 dakika kaldı
Sunucular ve İşletim Sistemi

Bash If İfadesi: Sözdizimi, Varyasyonlar, Kullanım Durumları, Komutlar ve Daha Fazlası!

Pius Bodenmann By Pius Bodenmann 10 dakika okuma Güncelleme tarihi: 28 Ocak 2024
bash komut dosyası oluşturma

Kabuk komut dosyası oluşturmada Bash if ifadeleri, programcıların farklı durumlara dayalı koşullu yürütme yolları oluşturmasına izin vererek çok önemli bir rol oynar. Temel olarak ifadeler, test sonuçları, kullanıcı girişi veya sistem durumları gibi faktörleri göz önünde bulundurarak Bash komut dosyaları içerisinde kararlar almamızı sağlar. Farklı olasılıklar arasında gezinmenin bir yolu gibi.

Bash komut dosyası kullanırken, if ifadesi belirli bir yapıyı takip eder. Genellikle şu şekilde başlar:if” anahtar kelimesini, ardından değerlendirilmesi gereken koşulu, “Daha sonra” anahtar sözcüğü ve koşulun doğru olması durumunda yürütülecek bir veya daha fazla komut.

İşleri daha esnek hale getirmek için if ifadesi isteğe bağlı bir "elif"(else if) ifadesi, başlangıç ​​koşulu yanlış olduğunda devreye girer. Ek bir koşulu test etmemize ve buna göre ilerlememize olanak tanır. Ayrıca, if ifadesi, koşullardan hiçbiri doğru değilse çalışacak isteğe bağlı bir "else" ifadesi de içerebilir.

Programcılar, if ifadelerini diğer Bash komutları ve kabuk komut dosyası oluşturma özellikleriyle birleştirerek, karmaşık görevleri ve süreçleri otomatikleştirebilecek gelişmiş komut dosyaları oluşturabilirler. Bash if ifadesi hakkında, sözdizimi, kullanım senaryoları ve örnekler de dahil olmak üzere daha fazlasını keşfetmek için burada kalın!

Bash If İfadesi Söz Dizimi

Bash sözdizimi, Bash kabuk dilinde yazılan komutların ve komut dosyalarının yapısını ve dilbilgisini yöneten kuralları ifade eder. Bash sözdizimi aşağıdakiler gibi çeşitli yapı ve öğeleri içerir:

  • Komutlar: Bunlar, belirli görevleri gerçekleştirmek için kullanılan ayrı ayrı yürütülebilir programlar veya kabuk yerleşikleridir. Bash programlamayla uğraştığınız zamanın çoğunu bu güzel satırlarla geçireceksiniz.
  • Argümanlar: Bunlar seçenekleri, parametreleri veya giriş verilerini belirtmek için komutlara iletilen değerlerdir. Bunları, bir komutun yürütme parametrelerini belirtmesi için ayarlanmış koşullar olarak düşünün.
  • Değişkenler: Bunlar atanabilen, değiştirilebilen veya ifadelerde kullanılabilen değerleri temsil eden simgelerdir. Genellikle hem komutların hem de argümanların ilgilenmesi gereken değerleri belirlemek için kullanılırlar.
  • Yönlendirme: Bu, girdileri, çıktıları veya hataları dosyalara, aygıtlara veya diğer komutlara yeniden yönlendirme işlemidir. Bunlar olmadan, komutlarınızın yanlış hedefi hedeflemesi ve kodunuzu karıştırması ihtimali yüksektir.
  • Borular: Bu, bir komutun çıktısını başka bir komutun girişine bağlamak için kullanılan bir mekanizmadır. Bunlar genellikle büyük programlarda gelişmiş koşullu komut satırlarını gerçekleştirmek ve iç içe geçmiş komut satırları oluşturmak için kullanılır.
  • Kontrol yapıları: Bunlar döngüler, koşullar ve işlevler gibi komutların yürütme akışını kontrol eden yapılardır. Kontrol yapısını anlamak, yeni komut satırları oluşturmanın anahtarıdır ve kodunuza başka bir derinlik düzeyi kazandırır.
  • Yorumlar: Bunlar kabuk tarafından göz ardı edilen ve kodu belgelemek veya açıklamalar sağlamak için kullanılan açıklamalardır. Bunlar, özellikle grup projelerinde analiz ve hata ayıklama gerçekleştirirken önemli referans noktalarıdır.

Kabuğun komutları yorumlayıp yürütebilmesi için Bash sözdiziminin doğru yazılması gerekir. Sözdizimi hataları, kabuğun hata mesajları veya beklenmeyen davranışlar üretmesine neden olabilir.

İşte Bash if ifadesi iş başında:

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

Buradaki durumda “koşul”, doğru ya da yanlış sonucu üreten bir testi ifade eder. Koşul doğru olduğunda “then” anahtar sözcüğünden sonra belirtilen sonraki komutlar yürütülür. Şimdi bunun yerine ek bir koşulu değerlendirmek istediğimizi varsayalım. Bunun için “elif” anahtar kelimesini kullanabiliriz. Başka bir olasılığı değerlendirmenin bir yolunu sağlar. Artık şartlardan hiçbiri gerçekleşmiyorsa “else” sözcüğünden sonra belirtilen komutlar devreye girer. Bir geri dönüş planı gibi. Son olarak if ifadesinin sonucunu belirtmek için “if” anahtar sözcüğünü kullanırız.

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

Bash komut dosyası oluşturma söz konusu olduğunda, if ifadesi, koşullu bir testin sonucuna bağlı olarak komut dosyasının akışını yönlendirmede oldukça kullanışlı hale gelir. Amacı, bir koşulun değerlendirilmesi ve eğer doğru bulunursa belirli bir dizi komutun yürütülmesi etrafında döner.

Şimdi bir Bash betiğinde if ifadesi devreye girdiğinde olayların genellikle nasıl geliştiğine bir göz atalım. Betiğin if ifadesinde belirtilen koşulu değerlendirmesi biraz zaman alır. Koşulun doğru olduğu kanıtlanırsa, "then" bloğunda listelenen komutların uygulanma sırası kendilerine gelir.

Ancak koşulun yanlış olması durumunda kod, ek elif koşullarını değerlendirmeye devam eder. Bu koşullardan herhangi biri doğruysa ilgili elif bloğunun komutları yürütülür. If ve elif ifadelerinde belirtilen koşulların hiçbirinin doğru görünmediği durumlarda, kod bunu kabul eder ve else bloğunda belirtilen komutları yürütmeye devam eder (eğer bir else bloğu dahil edilmişse).

Temel olarak if ifadesi, bir komut dosyası içinde karar almayı kolaylaştıran bir araç olarak hizmet eder ve testin sonucuna bağlı olarak farklı yürütme yollarından geçmesine olanak tanır. Testin kendisi, bir komutun sonucu veya bir değişkene atanan değer gibi çeşitli faktörleri dikkate alabilir.

Bash If İfadesi Örneklendi

Şimdi temel teoriden çıkalım ve Bash if ifadesinin aktif kodlama geliştirmede nasıl kullanılabileceğini görelim. İşte Bash if ifadesinin nasıl çalıştığını gösteren bir örnek:

#!/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 değerlendiriyor. X, 4'ten büyükse, komut dosyası "x, 4'ten büyüktür" ifadesini yazdırma komutunu yürütür. X, 4'ten küçük veya eşitse, komut dosyası "x, 4'ten küçük veya eşittir" ifadesini yazdırma komutunu yürütür.

Artık çıplak Bash If İfadesi ve nasıl çalıştığı hakkında sağlam bir anlayışa sahip olduğunuza göre, varyasyonları ve ilgili komutları daha derinlemesine inceleyelim ve Temel If İfadeleri, İç İçe If ifadeleri, Bash If Else, If Elif Else ve Case İfadeleri hakkında daha fazlasını tek tek öğrenelim.

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 ilgili kod bloğunu buna göre yürütür. İşte sözdizimi:

if [ condition ]
then
  commands
fi

Burada yaşadığımız durumda, script koşulu değerlendirir ve eğer doğruysa belirtilen komutlar yürütülür. Koşul yanlışsa, komut dosyası “sonra” bölümündeki bloğu çalıştırmadan bir sonraki komuta geçer.

İç İçe If İfadeleri

Yuvalanmış if ifadesi, reklam öğesi adından da anlaşılacağı gibi, başka bir if ifadesinin içinde "yuvalanmış" bir if ifadesidir. Bu iç içe geçmiş yapı, bir komut dosyası içinde daha karmaşık testlere ve analizlere olanak tanır. İşte iç içe geçmiş if ifadesinin bir örneği:

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

Komut dosyasının koşul1'i ilk adım olarak değerlendirdiğini komutlarda görebilirsiniz. Koşul1'in doğru olduğu doğrulanırsa koşul2'yi değerlendirir. Koşul2 de doğruysa, komut dosyası gerekli komutları yürütür.

Bash If Else İfadeleri

Bash if else ifadesi, bir koşulun doğru veya yanlış olmasına bağlı olarak betiğiniz içinde kararlar vermenize olanak tanır ve daha gelişmiş durumsal kod yürütmeye olanak tanır. Yapı şu şekilde görünüyor:

if [ condition ]
then
  commands1
else
  commands2
fi

Bu yapı, koşulun geçerli olması durumunda betiğinizin "commands1"i hızlı bir şekilde yürütmesini sağlar. Ancak koşul yanlışsa "komutlar2"yi yürütmeye geçecektir.

Elif Else İfadeleri

Bazen birden fazla koşulu ve bunların ilgili sonuçlarını dikkate almanız gerekir. if elif else ifadesi tam olarak bunu başarmanıza olanak sağlar. Aşağıdaki sözdizimine dikkat edin:

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

Burada betiğiniz ilk olarak koşul1'i değerlendirir. Doğruluğu doğrulanırsa; komutları hızlı bir şekilde yerine getirecektir1. Ancak koşul1 yanlışsa komut dosyanız koşul2'yi değerlendirmeye geçer. Koşul2 doğruysa, komut2'yi yürütmeye devam eder. Ve hem koşul1 hem de koşul2'nin yanlış olduğu ortaya çıkarsa, betiğiniz, komutları3 yürüten alternatife yönelecektir.

Vaka Açıklamaları

Bash'te, diğer programlama dillerinde bulunan switch ifadesine benzer şekilde çalışan case ifadesine sahipsiniz. Bir değişkenin değerine bağlı olarak farklı komut kümelerini yürütmenin bir yolunu sağlar. Yapıya bir göz atın:

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

Burada kod, ifade değişkenini değerlendirir ve onu çeşitli kalıplarla eşleştirir. Bir eşleşme bulunduğunda karşılık gelen komut dizisi yürütülür. Ancak herhangi bir eşleşme bulunamazsa, varsayılan komutlar sorunsuz bir şekilde yürütülür. Yıldız işareti (*) deseni, kapsanmayan her şeyle eşleşen bir joker karakter görevi görür.

Bash Mantıksal Operatörleri

Bash if ifadesi entrikalarının bir diğer önemli kısmı Mantıksal Operatördür. Bu operatörler, birden fazla koşulu birleştirmenize olanak tanıyarak, bu birleştirilmiş koşulların doğruluğuna veya yanlışlığına göre kararlar vermenizi sağlar. Bash, if ifadelerinde kullanılmak üzere üç temel mantıksal operatörü birleştirir. Burada mantıksal operatör komutlarının üç ana tipinin örnekleri verilmiştir.

  • Bash VE (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Mantıksal veya (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

Çözüm

Bu blog yazımızda Bash if ifadeleri ve bunların nasıl kullanılacağı hakkında giriş niteliğinde bir rehber sunduk. Ayrıca kodunuzu nasıl daha düzgün ve işlevsel hale getirebileceklerini de tartıştık. Bu koşullu ifadeleri etkili bir şekilde kullanarak, karmaşık görevleri ve karar almayı gerçekleştirebilecek güçlü komut dosyaları oluşturabilirsiniz.

Linux dünyasında yeni misiniz? Bu heyecan verici yolculukta yol gösterici ışığınız olalım! Bizim Linux VPS'si Güçten ödün vermeden basitlik sunan, yeni başlayanlar için mükemmel bir başlangıç ​​noktasıdır. Kullanıcı dostu arayüzler ve uzman desteğiyle, bir Linux sunucusunun özelliklerinden yararlanmanın her zamankinden daha kolay olduğunu göreceksiniz. İster bir web sitesi kuruyor, ister uygulamaları test ediyor, ister Linux'un geniş dünyasını keşfediyor olun, Linux VPS'miz güvenli ve sorunsuz bir ortam sağlar. Linux evrenine ilk adımlarınızı güvenle atın; Linux VPS seçeneklerimize bugün göz atın ve Linux maceranıza başlayın!

Linux VPS Barındırma

Web sitenizi veya uzak masaüstünüzü barındırmak için kendinize en ucuz fiyata ekonomik veya premium Linux VPS edinin. VPS, daha fazla verimlilik için Linux KVM üzerinde çalışır ve daha yüksek hız için NVMe SSD depolama ile güçlü donanım üzerinde çalışır.

Devamını oku

SSS

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

Evet, gibi mantıksal operatörleri kullanabilirsiniz. '&' Ve '||' Bash if ifadelerinde. Örneğin, if [ $var -gt 0 ] && [ $var -lt 10 ]; Daha sonra … eğer kod bloğunu çalıştıracak $var 0'dan büyük ve 10'dan küçüktür.

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

Evet, gibi mantıksal operatörleri kullanarak Bash if'i tek bir if ifadesinde birden fazla koşulla kullanabilirsiniz. -a (VE) veya -o (VEYA) bunları birleştirmek için. Örneğin, if [ $var -gt 0 -a $var -lt 10 ]; Daha sonra … eğer kod bloğunu çalıştıracak $var 0'dan büyük VE 10'dan küçüktür.

Bash if ifadelerinde komut değiştirmeyi kullanabilir miyim?

Evet, Bash if ifadelerinde komutu içine alarak komut değiştirmeyi kullanabilirsiniz. $() veya geri tıklamalar (). Örneğin, if [ $(whoami) == “kök” ]; Daha sonra … Geçerli kullanıcı root ise kod bloğunu çalıştıracaktı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 gruplaması ve komut yürütme için kullanılır. (( aritmetik işlemler için kullanılır.

 

Paylaşmak

Blogdan daha fazlası

Okumaya devam edin.

Cosmos Cloud ile Çalıştırabileceğiniz En İyi Kendi Kendine Barındırılan Uygulamalar Cosmos kontrol panelinin etrafındaki uygulama panellerini içeren kapak resmi.
Sunucular ve İşletim Sistemi

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

Belki Cosmos Cloud'u kurdunuz ve şimdi hangi uygulamaların onunla iyi eşleştiğini görmek istiyorsunuz ya da belki henüz Cosmos'a karar vermediniz ve sadece işinize ne kadar iyi uyduğunu görmek istiyorsunuz.

Nick GümüşNick Gümüş 16 dakikalık okuma
Docker Uygulamalarını Yönetmek için Portainer ve Cosmos Cloud, hibrit kurulum şeması ve neon operasyonlar ve erişim blokları ile kapsıyor.
Sunucular ve İşletim Sistemi

Portainer ve Cosmos Cloud: Docker Uygulama Yönetimi için En İyi Uyum

Docker'ı zaten biliyorsanız ve büyüyen bir uygulama yığınını çalıştırmanın daha temiz bir yolunu istiyorsanız işte Portainer ve Cosmos Cloud'un kısa yanıtı. Portainer yönetmenlik için daha güçlü bir seçim

Nick GümüşNick Gümüş 14 dakikalık okuma
Cosmos Cloud, CasaOS ve Umbrel karşılaştırması, soyut bir bulut ağı dünyasında kendi kendine barındırılan üç yolu gösteren grafik özelliği.
Sunucular ve İşletim Sistemi

Cosmos Cloud, CasaOS ve Umbrel: Hangi Kendi Kendine Barındırılan Platform Kurulumunuza Uygun?

Kısa cevap, CasaOS'un hala başlamak için en kolay yer olduğu, Umbrel'in en temiz küratörlük hissine sahip olduğu ve Cosmos Cloud'un, doma üzerinde daha sıkı kontrol istediğinizde daha mantıklı olduğudur.

Nick GümüşNick Gümüş 11 dakikalık okuma

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

Bağımsız bulut, 2008'den beri. AMD EPYC, NVMe, 40 Gbps. 14 gün içinde para iadesi.