Shell Script Argüman Okuma: Komut Satırı Parametreleri
, shell script yazıyorsan ama argüman kullanmıyorsan… Ferrari’yi 1. viteste sürüyorsun demektir.
Bu rehberde, betiklerin dışarıdan veri almasını sağlayan komut satırı argümanlarını net ve temiz şekilde öğreneceksin.
Bu Rehberde Ne Öğreneceksiniz?
- Komut satırı argümanlarının ne işe yaradığını
$0,$1,$#,$@gibi özel Bash değişkenlerini- Argümanlarla çalışan basit ama güçlü bir shell script yazmayı
- Çıktıları doğru yorumlamayı
Komut Satırı Argümanları Nedir?
Argümanlar, bir betiği çalıştırırken yanına eklediğin parametrelerdir.
Linux’ta bunlara pozisyonel parametreler denir.
Örnek:
./arguman_test.sh merhaba dunya
- Bu komut betiğe iki farklı argüman gönderir.
Bash Özel Değişkenleri (Altın Liste)
-
Shell, argümanları otomatik olarak şu değişkenlere atar:
-
$0 → Betiğin adı
-
$1 → Birinci argüman
-
$2 → İkinci argüman
-
$9 → Dokuzuncu argüman
-
$# → Toplam argüman sayısı
-
$@ → Tüm argümanlar (liste şeklinde)
-
$$ → Betiğin process ID’si
-
$? → Son komutun çıkış kodu
Uygulama: Argüman Okuyan Shell Script Şimdi koda girelim.
1. Betik Dosyasını Oluştur
nano arguman_test.sh
- Bu komut yeni bir shell script dosyası açar.
2. Script İçeriği
#!/bin/bash
echo "Betik Adı: $0"
echo "Birinci Parametre: $1"
echo "İkinci Parametre: $2"
echo "Tüm Argümanlar: $@"
echo "Toplam Argüman Sayısı: $#"
- Bu script, gönderilen tüm argümanları ekrana yazdırır.
3. Çalıştırma İzni Verin ve Başlatın
chmod +x arguman_test.sh
./arguman_test.sh merhaba dunya
- Betik iki argümanla çalıştırılır.
Beklenen Mantık
-
$1 → merhaba
-
$2 → dunya
-
$# → 2
-
$@ → merhaba dunya
- Her şey net, her şey kontrol altında 😎
Sıkça Sorulan Sorular (SSS)
1. 9’dan fazla argüman kullanabilir miyim? Evet. ${10}, ${11} şeklinde kullanmalısın.
2. Argüman boş gelirse ne olur? Değişken boş kalır. if [ -z "$1" ] ile kontrol edebilirsin.
3. Argüman içinde boşluk varsa? Tırnak kullanmalısın:
./betik.sh "uzun bir cumle"
4. $@ mı $ mı?* "$@" daha güvenlidir. Prod ortamda onu kullan.
Sonuç
Komut satırı argümanları, shell script’leri statik dosyadan gerçek otomasyon aracına çevirir. Tek betikle yüzlerce senaryoyu yönetebilirsin.
Bu tarz otomasyonları yüksek performanslı Linux sunucularda çalıştırmak istersen, Rabisu Bulut altyapısında hemen test edebilirsin 🚀