Menu
CoddyTech

If İfadesi

Coddy'nin Terminal Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 70 / 82.

Şimdiye kadar betikleriniz her komutu yukarıdan aşağıya, herhangi bir karar verme işlemi olmadan çalıştırdı. Peki betiğinizin belirli koşullara göre farklı şeyler yapmasını isterseniz? İşte if ifadesi burada devreye girer.

if ifadesi, betiğinizin kararlar almasını sağlar. Bir koşulun doğru olup olmadığını kontrol eder ve doğruysa bir kod bloğunu çalıştırır. Temel yapı şöyledir:

#!/bin/bash
age=18
if [ $age -ge 18 ]; then
    echo "You are an adult"
fi

Koşul, etrafında boşluklar olacak şekilde köşeli parantezlerin içine yazılır. then anahtar sözcüğü çalıştırılacak kodun başlangıcını belirtir ve fi (tersten yazılmış if) ifadeyi sonlandırır.

Koşul yanlış olduğunda else kullanarak bu durumu da ele alabilirsiniz:

#!/bin/bash
age=15
if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

Sayılar için yaygın karşılaştırma işleçleri arasında -eq (eşittir), -ne (eşit değildir), -gt (büyüktür), -lt (küçüktür), -ge (büyük veya eşittir) ve -le (küçük veya eşittir) bulunur. Dizeler için eşitlikte =, eşitsizlikte ise != kullanın.

Boş değerlerle ilgili hataları önlemek için köşeli parantezlerin içine her zaman boşluk eklemeyi ve değişkenlerinizi tırnak içine almayı unutmayın.

challenge icon

Görev

Kolay

check_score.sh adlı bir kabuk betiği oluşturun ve bir test puanını değerlendirmek için if ifadesini kullanın.

Betiğiniz şunları yapmalıdır:

  1. Shebang satırıyla başlayın (#!/bin/bash)
  2. 75 değerine sahip score adlı bir değişken oluşturun
  3. Puanın 70'e eşit veya 70'ten büyük olup olmadığını kontrol etmek için bir if ifadesi kullanın
  4. Doğruysa şunu yazdırın: You passed!
  5. Yanlışsa şunu yazdırın: You failed.

Betiği çalıştırılabilir hâle getirin ve çalıştırın. Puan 75 olduğundan çıktınız şu olmalıdır:

You passed!

İpucu: "büyük veya eşit" karşılaştırması için -ge kullanmayı, köşeli parantezlerin içinde boşluk bırakmayı ve if ifadenizi fi ile sonlandırmayı unutmayın.

Burada bir dosya düzenleyici yok; bu nedenle dosyayı doğrudan kabuktan bir here-document ile yazın: cat > check_score.sh << 'EOF' komutunu, ardından betiğin satırlarını ve son olarak yalnızca EOF içeren bir satırı yazın.

Kendin dene

Terminal
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Terminal playground