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"
fiKoş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"
fiSayı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.
Görev
Kolaycheck_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:
- Shebang satırıyla başlayın (
#!/bin/bash) 75değerine sahipscoreadlı bir değişken oluşturun- Puanın 70'e eşit veya 70'ten büyük olup olmadığını kontrol etmek için bir if ifadesi kullanın
- Doğruysa şunu yazdırın:
You passed! - 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
-gekullanmayı, köşeli parantezlerin içinde boşluk bırakmayı ve if ifadenizifiile 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ızcaEOFiçeren bir satırı yazın.
Kendin dene
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
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ıKendi başına pratik yap: Terminal playground