🚀 BAŞTAN SONA BASH SCRIPTING BÖLÜM-2: Değişkenler, Kullanıcı Girdisi ve Çevre Değişkenleri 🐚

Konu Özeti

Bash betiklerinde değişken tanımlama kuralları, eşittir işareti etrafında boşluk bırakılmaması gerektiği ve değişken değerine erişirken $ işareti kullanımı anlatılıyor. Kullanıcıdan read komutu ile girdi alma, -p, -s, -t parametreleriyle etkileşimli betik oluşturma ve komut çıktılarını $() yapısıyla değişkene atama yöntemleri gösteriliyor. Ayrıca $USER, $HOME, $PATH gibi çevre değişkenleri ile $0, $1, $# gibi konumsal parametrelerin kullanımı örneklerle açıklanıyor.

🚀 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! 🐚✨

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
135,050Konular
3,297,712Mesajlar
326,237Kullanıcılar
thekral21Son Üye
Üst Alt