-
Sadrazamv4
ig:sadrazam_v4 tg: Sadrazam.spy
🚀 BAŞTAN SONA BASH SCRIPTING BÖLÜM-3: Aritmetik İşlemler ve Karar Yapıları (`if / else`) 🐚
Selamlar! Serimizin 3. bölümüne hoş geldiniz.
Önceki bölümde değişkenleri, `read` ile kullanıcıdan girdi almayı ve özel argüman değişkenlerini incelemiştik. Bu bölümde ise betiklerimize mantık ve karar mekanizması katacak olan **Aritmetik İşlemleri** ve **Karar Yapılarını (`if / else`)** öğreneceğiz.
---
🔢 1. Bash'te Aritmetik İşlemler 🧮
Bash varsayılan olarak tüm değişkenleri metin (string) olarak değerlendirir. Bu yüzden doğrudan `X=5+5` yazarsanız ekrana "5+5" basar!
Matematiksel işlem yapmak için en modern ve performanslı yöntem `$(( ... ))` yapısıdır.
#!/bin/bash
SAYI1=10
SAYI2=3
# $(( ... )) kullanımı:
TOPLAM=$((SAYI1 + SAYI2))
FARK=$((SAYI1 - SAYI2))
CARPIM=$((SAYI1 * SAYI2))
BOLUM=$((SAYI1 / SAYI2)) # Tam sayı bölmesi yapar (Ondalık kısmı atar)
KALAN=$((SAYI1 % SAYI2)) # Mod alma
echo "Toplam: $TOPLAM"
echo "Bölüm: $BOLUM"
echo "Kalan: $KALAN"
# Sayaç Artırma / Eksiltme:
SAYAC=0
((SAYAC++)) # SAYAC 1 oldu
((SAYAC+=5)) # SAYAC 6 oldu
---
🚦 2. Test Yapısı ve Karşılaştırma Operatörleri ⚖️
Bash'te koşul kontrolleri `[ ]` veya daha gelişmiş olan `[[ ]]` parantezleri içinde yapılır.
⚠️ **Önemli Kural:** Köşeli parantezlerin İÇ KENARLARINDA boşluk bırakmak ZORUNDASINIZDIR! (`[ $SAYI -eq 10 ]`)
### A. Sayısal Karşılaştırma Operatörleri:
Normal `<` veya `>` işaretleri yerine özel kelimeler kullanılır:
- `-eq` (Equal): Eşit ise (`==`)
- `-ne` (Not Equal): Eşit değil ise (`!=`)
- `-gt` (Greater Than): Büyük ise (`>`)
- `-ge` (Greater or Equal): Büyük veya eşit ise (`>=`)
- `-lt` (Less Than): Küçük ise (`<`)
- `-le` (Less or Equal): Küçük veya eşit ise (`<=`)
### B. Metinsel (String) Karşılaştırma Operatörleri:
- `=` veya `==`: Metinler eşit ise
- `!=`: Metinler eşit değil ise
- `-z`: Metin boş (length zero) ise
- `-n`: Metin boş değil (not zero) ise
---
🔀 3. Karar Yapıları: `if`, `elif`, `else` 🚦
Bash'te `if` bloğu `if [ koşul ]; then` şeklinde başlar ve tersten yazılan `fi` ile bitirilir.
#!/bin/bash
read -p "Lütfen yaşınızı girin: " YAS
if [ $YAS -ge 18 ]; then
echo "Ehliyet alabilirsiniz! ✅"
elif [ $YAS -eq 17 ]; then
echo "Dayanın, son 1 yılınız kaldı! ⏳"
else
echo "Üzgünüm, yaşınız ehliyet almak için yetersiz. ❌"
fi
---
🔗 4. Mantıksal Operatörler (AND / OR) 🤝
Multiple koşulları bağlamak için `&&` (AND) ve `||` (OR) kullanılır. Modern `[[ ]]` yapısıyla kullanımı çok pratiktir:
#!/bin/bash
KULLANICI="admin"
PAROLA="12345"
read -p "Kullanıcı Adı: " GIRILEN_KULLANICI
read -sp "Parola: " GIRILEN_PAROLA
echo ""
# [[ ... ]] kullanımı mantıksal operatörleri doğrudan destekler:
if [[ $GIRILEN_KULLANICI == $KULLANICI && $GIRILEN_PAROLA == $PAROLA ]]; then
echo "Giriş Başarılı! Sistem açılıyor... 🚀"
else
echo "Hatalı Kullanıcı Adı veya Parola! ⛔"
fi
---
📁 5. Dosya ve Dizin Kontrol Operatörleri 📂
Sistem yönetiminde en çok kullanılan koşullardır. Bir dosyanın var olup olmadığını veya yazılabilir olup olmadığını kontrol eder:
- `-e` (Exists): Dosya veya dizin var mı?
- `-f` (File): Belirtilen yol normal bir dosya mı?
- `-d` (Directory): Belirtilen yol bir dizin/klasör mü?
- `-r` (Readable): Okuma izni var mı?
- `-w` (Writable): Yazma izni var mı?
- `-x` (Executable): Çalıştırma izni var mı?
#!/bin/bash
DOSYA_YOLU="/etc/passwd"
if [ -f $DOSYA_YOLU ]; then
echo "$DOSYA_YOLU bir dosyadır ve sistemde mevcuttur. ✅"
if [ -w $DOSYA_YOLU ]; then
echo "Bu dosyaya yazma izniniz var."
else
echo "Bu dosyayı değiştirmek için root yetkisi gerekir (Salt Okunur). 🔒"
fi
else
echo "Böyle bir dosya bulunamadı! ❌"
fi
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde Bash'te matematiksel işlemleri, karşılaştırma operatörlerini, `if/elif/else` yapısını ve dosya kontrol parametrelerini öğrendik.
👉 Bölüm 4'te Bizi Ne Bekliyor?
• Döngüler (Loops): `for`, `while` ve `until`
• Sonsuz Döngüler ve `break` / `continue`
• Dizile
r üzerindeki döngüler ve dosyaları satır satır okuma
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 🐚✨
Selamlar! Serimizin 3. bölümüne hoş geldiniz.
Önceki bölümde değişkenleri, `read` ile kullanıcıdan girdi almayı ve özel argüman değişkenlerini incelemiştik. Bu bölümde ise betiklerimize mantık ve karar mekanizması katacak olan **Aritmetik İşlemleri** ve **Karar Yapılarını (`if / else`)** öğreneceğiz.
---
🔢 1. Bash'te Aritmetik İşlemler 🧮
Bash varsayılan olarak tüm değişkenleri metin (string) olarak değerlendirir. Bu yüzden doğrudan `X=5+5` yazarsanız ekrana "5+5" basar!
Matematiksel işlem yapmak için en modern ve performanslı yöntem `$(( ... ))` yapısıdır.
#!/bin/bash
SAYI1=10
SAYI2=3
# $(( ... )) kullanımı:
TOPLAM=$((SAYI1 + SAYI2))
FARK=$((SAYI1 - SAYI2))
CARPIM=$((SAYI1 * SAYI2))
BOLUM=$((SAYI1 / SAYI2)) # Tam sayı bölmesi yapar (Ondalık kısmı atar)
KALAN=$((SAYI1 % SAYI2)) # Mod alma
echo "Toplam: $TOPLAM"
echo "Bölüm: $BOLUM"
echo "Kalan: $KALAN"
# Sayaç Artırma / Eksiltme:
SAYAC=0
((SAYAC++)) # SAYAC 1 oldu
((SAYAC+=5)) # SAYAC 6 oldu
---
🚦 2. Test Yapısı ve Karşılaştırma Operatörleri ⚖️
Bash'te koşul kontrolleri `[ ]` veya daha gelişmiş olan `[[ ]]` parantezleri içinde yapılır.
⚠️ **Önemli Kural:** Köşeli parantezlerin İÇ KENARLARINDA boşluk bırakmak ZORUNDASINIZDIR! (`[ $SAYI -eq 10 ]`)
### A. Sayısal Karşılaştırma Operatörleri:
Normal `<` veya `>` işaretleri yerine özel kelimeler kullanılır:
- `-eq` (Equal): Eşit ise (`==`)
- `-ne` (Not Equal): Eşit değil ise (`!=`)
- `-gt` (Greater Than): Büyük ise (`>`)
- `-ge` (Greater or Equal): Büyük veya eşit ise (`>=`)
- `-lt` (Less Than): Küçük ise (`<`)
- `-le` (Less or Equal): Küçük veya eşit ise (`<=`)
### B. Metinsel (String) Karşılaştırma Operatörleri:
- `=` veya `==`: Metinler eşit ise
- `!=`: Metinler eşit değil ise
- `-z`: Metin boş (length zero) ise
- `-n`: Metin boş değil (not zero) ise
---
🔀 3. Karar Yapıları: `if`, `elif`, `else` 🚦
Bash'te `if` bloğu `if [ koşul ]; then` şeklinde başlar ve tersten yazılan `fi` ile bitirilir.
#!/bin/bash
read -p "Lütfen yaşınızı girin: " YAS
if [ $YAS -ge 18 ]; then
echo "Ehliyet alabilirsiniz! ✅"
elif [ $YAS -eq 17 ]; then
echo "Dayanın, son 1 yılınız kaldı! ⏳"
else
echo "Üzgünüm, yaşınız ehliyet almak için yetersiz. ❌"
fi
---
🔗 4. Mantıksal Operatörler (AND / OR) 🤝
Multiple koşulları bağlamak için `&&` (AND) ve `||` (OR) kullanılır. Modern `[[ ]]` yapısıyla kullanımı çok pratiktir:
#!/bin/bash
KULLANICI="admin"
PAROLA="12345"
read -p "Kullanıcı Adı: " GIRILEN_KULLANICI
read -sp "Parola: " GIRILEN_PAROLA
echo ""
# [[ ... ]] kullanımı mantıksal operatörleri doğrudan destekler:
if [[ $GIRILEN_KULLANICI == $KULLANICI && $GIRILEN_PAROLA == $PAROLA ]]; then
echo "Giriş Başarılı! Sistem açılıyor... 🚀"
else
echo "Hatalı Kullanıcı Adı veya Parola! ⛔"
fi
---
📁 5. Dosya ve Dizin Kontrol Operatörleri 📂
Sistem yönetiminde en çok kullanılan koşullardır. Bir dosyanın var olup olmadığını veya yazılabilir olup olmadığını kontrol eder:
- `-e` (Exists): Dosya veya dizin var mı?
- `-f` (File): Belirtilen yol normal bir dosya mı?
- `-d` (Directory): Belirtilen yol bir dizin/klasör mü?
- `-r` (Readable): Okuma izni var mı?
- `-w` (Writable): Yazma izni var mı?
- `-x` (Executable): Çalıştırma izni var mı?
#!/bin/bash
DOSYA_YOLU="/etc/passwd"
if [ -f $DOSYA_YOLU ]; then
echo "$DOSYA_YOLU bir dosyadır ve sistemde mevcuttur. ✅"
if [ -w $DOSYA_YOLU ]; then
echo "Bu dosyaya yazma izniniz var."
else
echo "Bu dosyayı değiştirmek için root yetkisi gerekir (Salt Okunur). 🔒"
fi
else
echo "Böyle bir dosya bulunamadı! ❌"
fi
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde Bash'te matematiksel işlemleri, karşılaştırma operatörlerini, `if/elif/else` yapısını ve dosya kontrol parametrelerini öğrendik.
👉 Bölüm 4'te Bizi Ne Bekliyor?
• Döngüler (Loops): `for`, `while` ve `until`
• Sonsuz Döngüler ve `break` / `continue`
• Dizile
r üzerindeki döngüler ve dosyaları satır satır okuma
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 🐚✨
🔒 Bu içeriği görmek için giriş yapın