If İfadesi
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 70 / 82.
Şimdiye kadar betikleriniz her komutu üstten alta doğru, herhangi bir karar verme yapmadan çalıştırıyor. Ama ya betiğinizin belirli koşullara göre farklı şeyler yapmasını isterseniz? İşte burada if ifadesi devreye giriyor.
if ifadesi betiğinizin kararlar almasını sağlar. Bir koşulun doğru olup olmadığını kontrol eder ve eğer öyleyse bir kod bloğunu çalıştırır. İşte temel yapısı:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiKoşul, etrafında boşluklarla köşeli parantezlerin içine yazılır. then anahtar kelimesi çalıştırılacak kodun başlangıcını işaretler ve fi (if geriye doğru yazıldığında) ifadeyi sonlandırır.
Koşul yanlış olduğunda durumu da else kullanarak ele alabilirsiniz:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiSayılar için yaygın karşılaştırma operatörleri -eq (eşit), -ne (eşit değil), -gt (daha büyük), -lt (daha küçük), -ge (daha büyük veya eşit) ve -le (daha küçük veya eşit) içerir. Dizeler için eşitlik amacıyla =, eşitsizlik amacıyla ise != kullanın.
Köşeli parantezlerin içindeki boşlukları her zaman dahil etmeyi unutmayın ve boş değerlerden kaynaklanan hataları önlemek için değişkenlerinizi tırnak içine alın.
Görev
Kolaycheck_score.sh adında bir kabuk betiği oluşturun ki, bir test puanını değerlendirmek için if ifadesi kullansın.
Betikiniz şunları yapmalı:
- Shebang satırıyla başlayın (
#!/bin/bash) scoreadında bir değişken oluşturun değeri75olsun- Puanın 70 veya daha büyük olup olmadığını kontrol etmek için if ifadesi kullanın
- Doğruysa, şunu yazdırın:
You passed! - Yanlışsa, şunu yazdırın:
You failed.
Betik'i çalıştırılabilir hale getirin ve çalıştırın. Puan 75 olduğu için, çıktınız şöyle olmalı:
You passed!İpucu: "Büyük veya eşit" karşılaştırması için
-gekullanmayı, köşeli parantezlerin içine boşluklar eklemeyi ve if ifadenizifiile bitirmeyi unutmayın.
Kopya kağıdı
if ifadesi, komut dosyalarının koşullara dayalı kararlar almasını sağlar:
#!/bin/bash
age=18
if [ $age -ge 18 ]; then
echo "You are an adult"
fiKoşul, etrafında boşluklarla köşeli parantezlerin içine yazılır. Kod bloğunun başlangıcını işaretlemek için then kullanın ve ifadenin sonunu belirtmek için fi kullanın.
Koşul yanlış olduğunda durumları işlemek için else kullanın:
#!/bin/bash
age=15
if [ $age -ge 18 ]; then
echo "You are an adult"
else
echo "You are a minor"
fiYaygın karşılaştırma operatörleri:
- Sayılar:
-eq(eşit),-ne(eşit değil),-gt(büyük),-lt(küçük),-ge(büyük veya eşit),-le(küçük veya eşit) - Dizeler:
=(eşitlik),!=(eşitsizlik)
Parantezler içine her zaman boşluk ekleyin ve boş değerlerle hataları önlemek için değişkenleri tırnak içine alın.
Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme13Kabuk Betikleme Temelleri
Kabuk Betiği NedirBir Betik Oluştur ve ÇalıştırBetiklerde DeğişkenlerBetiklerde Kullanıcı GirdisiIf İfadesiFor DöngüsüWhile DöngüsüÖzet - Sayı Tahmincisi2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru Hattı