-
Sadrazamv4
instagram:sadrazam.spy Tg:Sadrazamv4
🚀 BAŞTAN SONA BASH SCRIPTING BÖLÜM-2: Değişkenler, Kullanıcı Girdisi ve Çevre Değişkenleri 🐚
Selamlar! Serimizin 2. bölümüne hoş geldiniz.
İlk bölümde ortamımızı hazırlayıp Shebang yapısını, `chmod` izinlerini ve `echo` komutunu öğrenmiştik. Bu bölümde ise betiklerimizi dinamik hale getirecek olan **Değişkenler (Variables)**, **Kullanıcı Girdisi Alma (`read`)** ve **Çevre Değişkenleri (Environment Variables)** konularını inceleyeceğiz.
---
📌 1. Değişken Tanımlama ve Kullanma 🔑
Bash dilinde değişken tanımlamak çok basittir ancak C, Python veya JavaScript gibi dillerden gelenlerin SIKÇA düştüğü kritik bir kural vardır: **Eşittir (`=`) işaretinin etrafında KESİNLİKLE BOŞLUK OLMAMALIDIR!**
Değişken Okuma Rule: Değişkenin değerine erişirken başına `$` işareti koyarız.
#!/bin/bash
# Doğru Tanımlama:
ISIM="Ahmet"
YAS=25
# Yanlış Tanımlamalar (HATA VERİR!):
# ISIM = "Ahmet"
# ISIM= "Ahmet"
# Değişkenleri Ekrana Yazdırma:
echo "Kullanıcı Adı: $ISIM"
echo "Kullanıcı Yaşı: $YAS"
# Süslü Parantez Kullanımı (Metin birleştirmede daha güvenlidir):
echo "Merhaba ${ISIM} Bey, hoş geldiniz."
---
📥 2. Kullanıcıdan Girdi Alma (`read`) ⌨️
Betiklerimizin interaktif olması için kullanıcıdan klavye girdisi almamız gerekir. Bunun için `read` komutunu kullanırız.
#!/bin/bash
# -p parametresi: Ekrana mesaj basıp aynı satırda girdi bekler
read -p "Lütfen adınızı girin: " KULLANICI_ADI
read -p "Hangi şehirdesiniz?: " SEHIR
echo "Selam $KULLANICI_ADI, $SEHIR şehrine sevgiler!"
### Pratik Parametreler:
• `-s` (Secret): Girilen karakterleri ekrana basmaz (Parola alırken kullanılır).
• `-t` (Timeout): Belirtilen saniye kadar bekler, girdi gelmezse devam eder.
read -sp "Gizli şifrenizi girin: " SIFRE
echo "" # Alt satıra geçmek için
echo "Şifre başarıyla alındı!"
---
💻 3. Komut Çıktılarını Değişkene Atama (Command Substitution) ⚙️
Bir Linux komutunun ürettiği çıktıyı doğrudan bir değişkene atamak için `$()` yapısını kullanırız.
#!/bin/bash
# 'date' komutunun çıktısını değişkene atıyoruz:
SU_AN=$(date +%T)
BUGUN=$(date +%Y-%m-%d)
KULLANICI=$(whoami)
DIZIN=$(pwd)
echo "Şu anki saat: $SU_AN"
echo "Bugünün tarihi: $BUGUN"
echo "Sistemdeki kullanıcı: $KULLANICI"
echo "Çalışılan dizin: $DIZIN"
---
🌐 4. Çevre Değişkenleri (Environment Variables) 🌍
Linux işletim sisteminde arka planda sürekli tanımlı olan ve tüm programlar tarafından okunabilen sistem değişkenleri vardır. Bunlara Çevre Değişkenleri denir.
Sık kullanılan bazı sistem değişkenleri:
• `$USER`: Mevcut oturum açan kullanıcı adı.
• `$HOME`: Kullanıcının ev dizini (`/home/kullanici`).
• `$PATH`: Çalıştırılabilir komutların arandığı dizin yolları.
• `$HOSTNAME`: Sunucu / Bilgisayar adı.
• `$$`: Çalışan mevcut betiğin Process ID (PID) numarası.
#!/bin/bash
echo "Merhaba $USER!"
echo "Ev dizininiz: $HOME"
echo "Bu betiğin PID adresi: $$"
---
📝 5. Özel Argüman Değişkenleri (Positional Parameters) 🎯
Betikleri terminalden çağırırken arkasına argüman ekleyebilirsiniz:
`./betik.sh arguman1 arguman2 arguman3`
Bu argümanlar Bash tarafından otomatik değişkenlere atanır:
• `$0`: Betiğin kendi adı (`./betik.sh`).
• `$1`: Birinci parametre.
• `$2`: İkinci parametre.
• `$#`: Toplam geçilen parametre sayısı.
• `$@`: Geçilen tüm parametrelerin listesi.
#!/bin/bash
echo "Çalıştırılan Betik: $0"
echo "İlk Parametre: $1"
echo "İkinci Parametre: $2"
echo "Toplam Girilen Parametre Sayısı: $#"
# Çalıştırma Örneği:
# ./betik.sh elma armut
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde değişken tanımlama kurallarını, `read` ile etkileşimli girdi almayı, komut çıktılarını değişkenlere kaydetmeyi ve özel argüman değişkenlerini inceledik.
👉 Bölüm 3'te Bizi Ne Bekliyor?
• Aritmetik İşlemler (Matematiksel İfadeler: `let`, `expr`, `$(( ))`)
• Karar Yapıları ve Koşullar (`if`, `else`, `elif`)
• Test Komutu (`[ ]` ve `[[ ]]`) ve Karşılaştırm
a Operatörleri (`-eq`, `-gt`, `-z` vb.)
Sorularınızı konu altından iletebilirsiniz. Bir sonraki bölümde görüşmek üzere! 🐚✨
Selamlar! Serimizin 2. bölümüne hoş geldiniz.
İlk bölümde ortamımızı hazırlayıp Shebang yapısını, `chmod` izinlerini ve `echo` komutunu öğrenmiştik. Bu bölümde ise betiklerimizi dinamik hale getirecek olan **Değişkenler (Variables)**, **Kullanıcı Girdisi Alma (`read`)** ve **Çevre Değişkenleri (Environment Variables)** konularını inceleyeceğiz.
---
📌 1. Değişken Tanımlama ve Kullanma 🔑
Bash dilinde değişken tanımlamak çok basittir ancak C, Python veya JavaScript gibi dillerden gelenlerin SIKÇA düştüğü kritik bir kural vardır: **Eşittir (`=`) işaretinin etrafında KESİNLİKLE BOŞLUK OLMAMALIDIR!**
Değişken Okuma Rule: Değişkenin değerine erişirken başına `$` işareti koyarız.
#!/bin/bash
# Doğru Tanımlama:
ISIM="Ahmet"
YAS=25
# Yanlış Tanımlamalar (HATA VERİR!):
# ISIM = "Ahmet"
# ISIM= "Ahmet"
# Değişkenleri Ekrana Yazdırma:
echo "Kullanıcı Adı: $ISIM"
echo "Kullanıcı Yaşı: $YAS"
# Süslü Parantez Kullanımı (Metin birleştirmede daha güvenlidir):
echo "Merhaba ${ISIM} Bey, hoş geldiniz."
---
📥 2. Kullanıcıdan Girdi Alma (`read`) ⌨️
Betiklerimizin interaktif olması için kullanıcıdan klavye girdisi almamız gerekir. Bunun için `read` komutunu kullanırız.
#!/bin/bash
# -p parametresi: Ekrana mesaj basıp aynı satırda girdi bekler
read -p "Lütfen adınızı girin: " KULLANICI_ADI
read -p "Hangi şehirdesiniz?: " SEHIR
echo "Selam $KULLANICI_ADI, $SEHIR şehrine sevgiler!"
### Pratik Parametreler:
• `-s` (Secret): Girilen karakterleri ekrana basmaz (Parola alırken kullanılır).
• `-t` (Timeout): Belirtilen saniye kadar bekler, girdi gelmezse devam eder.
read -sp "Gizli şifrenizi girin: " SIFRE
echo "" # Alt satıra geçmek için
echo "Şifre başarıyla alındı!"
---
💻 3. Komut Çıktılarını Değişkene Atama (Command Substitution) ⚙️
Bir Linux komutunun ürettiği çıktıyı doğrudan bir değişkene atamak için `$()` yapısını kullanırız.
#!/bin/bash
# 'date' komutunun çıktısını değişkene atıyoruz:
SU_AN=$(date +%T)
BUGUN=$(date +%Y-%m-%d)
KULLANICI=$(whoami)
DIZIN=$(pwd)
echo "Şu anki saat: $SU_AN"
echo "Bugünün tarihi: $BUGUN"
echo "Sistemdeki kullanıcı: $KULLANICI"
echo "Çalışılan dizin: $DIZIN"
---
🌐 4. Çevre Değişkenleri (Environment Variables) 🌍
Linux işletim sisteminde arka planda sürekli tanımlı olan ve tüm programlar tarafından okunabilen sistem değişkenleri vardır. Bunlara Çevre Değişkenleri denir.
Sık kullanılan bazı sistem değişkenleri:
• `$USER`: Mevcut oturum açan kullanıcı adı.
• `$HOME`: Kullanıcının ev dizini (`/home/kullanici`).
• `$PATH`: Çalıştırılabilir komutların arandığı dizin yolları.
• `$HOSTNAME`: Sunucu / Bilgisayar adı.
• `$$`: Çalışan mevcut betiğin Process ID (PID) numarası.
#!/bin/bash
echo "Merhaba $USER!"
echo "Ev dizininiz: $HOME"
echo "Bu betiğin PID adresi: $$"
---
📝 5. Özel Argüman Değişkenleri (Positional Parameters) 🎯
Betikleri terminalden çağırırken arkasına argüman ekleyebilirsiniz:
`./betik.sh arguman1 arguman2 arguman3`
Bu argümanlar Bash tarafından otomatik değişkenlere atanır:
• `$0`: Betiğin kendi adı (`./betik.sh`).
• `$1`: Birinci parametre.
• `$2`: İkinci parametre.
• `$#`: Toplam geçilen parametre sayısı.
• `$@`: Geçilen tüm parametrelerin listesi.
#!/bin/bash
echo "Çalıştırılan Betik: $0"
echo "İlk Parametre: $1"
echo "İkinci Parametre: $2"
echo "Toplam Girilen Parametre Sayısı: $#"
# Çalıştırma Örneği:
# ./betik.sh elma armut
---
📝 Bölüm Özeti ve Gelecek Bölüm 🔮
Bu bölümde değişken tanımlama kurallarını, `read` ile etkileşimli girdi almayı, komut çıktılarını değişkenlere kaydetmeyi ve özel argüman değişkenlerini inceledik.
👉 Bölüm 3'te Bizi Ne Bekliyor?
• Aritmetik İşlemler (Matematiksel İfadeler: `let`, `expr`, `$(( ))`)
• Karar Yapıları ve Koşullar (`if`, `else`, `elif`)
• Test Komutu (`[ ]` ve `[[ ]]`) ve Karşılaştırm
a Operatörleri (`-eq`, `-gt`, `-z` vb.)
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