Bash scriptler, sistem yöneticileri ve geliştiriciler için sık tekrarlanan görevleri otomatikleştirmede son derece kullanışlı bir araçtır. Bash scriptlerin gücü, kullanıcı girdilerini işleme ve komut satırı argümanlarını kullanma kabiliyetlerinden de gelir. Bu yazıda, kullanıcıdan veri almak, komut satırı argümanlarını kullanmak ve bu iki özelliği birleştirerek etkileşimli scriptler hazırlamanın temellerine odaklanacağız.

read Komutu ile Kullanıcıdan Veri Alma

Bash scriptlerinde kullanıcıdan veri almak, scriptlerin dinamik hale getirilmesini sağlar. Kullanıcı girdisi almak için bash’te read komutu kullanılır. read, kullanıcının girdiği veriyi alıp bir değişkene atar ve bu veriyi script içerisinde kullanmamıza olanak tanır.

Örnek: Kullanıcıdan İsim Alma

#!/bin/bash

echo "Lütfen adınızı girin:"
read isim
echo "Merhaba, $isim!"

Bu basit script, kullanıcıya ismini sorar ve kullanıcı ismini girdikten sonra bu ismi kullanarak bir karşılama mesajı görüntüler. read komutu isim değişkenine kullanıcıdan gelen veriyi atar ve echo komutu ile bu veri ekrana yazdırılır.

read Komutunun Kullanım Seçenekleri
  • -p: Kullanıcı girdisi istemini tek bir satırda göstermek için kullanılır.bashKodu kopyalaread -p "Kullanıcı adınızı girin: " username echo "Girdiğiniz kullanıcı adı: $username"
  • -s: Girilen veriyi gizlemek için kullanılır. Özellikle parola alırken kullanışlıdır.bashKodu kopyalaread -s -p "Parolanızı girin: " password echo echo "Parola başarıyla alındı."
  • -t: Girdi için bekleme süresi belirler. Bu süre sonunda kullanıcı girdi sağlamazsa script devam eder.bashKodu kopyalaread -t 5 -p "Bir şeyler yazın (5 saniye içinde): " input echo "Girdiğiniz: $input"

Script Argümanları ($1, $2, vb.) Kullanma

Bash scriptleri, komut satırından çağırıldıklarında argümanlar alabilirler. Bu argümanlar, script’e işlenecek dinamik değerler sağlamaya yarar. Komut satırında script adıyla birlikte verilen argümanlar $1, $2, $3 gibi değişkenler ile ifade edilir.

Örnek: Komut Satırı Argümanları Kullanımı Bir script yazalım ve bu script iki argüman alsın: isim ve yaş.

#!/bin/bash

isim=$1
yas=$2

echo "Merhaba, $isim. Sen $yas yaşındasın."

Bu script, ./script.sh Ahmet 25 şeklinde çağrıldığında Ahmet ve 25 değerlerini argüman olarak alır ve şu çıktıyı üretir:

Merhaba, Ahmet. Sen 25 yaşındasın.
Özel Argümanlar ve Kullanımları
  • $0: Script’in adı veya yolu.
  • $1, $2, $3, …: Script’e verilen argümanlardır.
  • $#: Toplam argüman sayısını döndürür.
  • $@: Tüm argümanları bir liste olarak döndürür.
  • $*: Tüm argümanları tek bir değişken olarak döndürür.

Örnek: Argüman Sayısı Kontrolü

#!/bin/bash

if [ $# -lt 2 ]; then
echo "Kullanım: $0 isim yas"
exit 1
fi

echo "Merhaba, $1. Yaşınız: $2"

Bu script, eğer kullanıcı en az iki argüman sağlamazsa bir hata mesajı verip script’i sonlandırır.

Kullanıcıdan Veri Alarak Etkileşimli Script Hazırlama

Etkileşimli bir script, kullanıcı girdilerini alarak sürecin belirli bölümlerini bu girdilere göre yürütür. Böylece script daha esnek ve dinamik hale gelir. read komutu ve komut satırı argümanlarını birleştirerek etkileşimli ve kullanıcı dostu scriptler oluşturmak mümkündür.

Örnek: Etkileşimli Script ile Dosya İşlemleri Aşağıdaki script, kullanıcının belirttiği bir dosya adını alır ve o dosyayı oluşturur.

#!/bin/bash

read -p "Oluşturulacak dosyanın adını girin: " dosya_adi

if [ -f "$dosya_adi" ]; then
echo "Dosya zaten mevcut: $dosya_adi"
else
touch "$dosya_adi"
echo "$dosya_adi oluşturuldu."
fi

Bu script, kullanıcının belirttiği dosya adını alır ve eğer o dosya mevcut değilse yeni bir dosya oluşturur. Mevcut bir dosya varsa, dosyanın zaten mevcut olduğu bildirilir.

Komut Satırı Argümanları ve Kullanıcı Girdisini Birleştirme

Bazı durumlarda script, hem komut satırından argüman alabilir hem de eksik bilgileri kullanıcıdan isteyebilir. Bu tür bir kullanım, script’in daha esnek olmasını sağlar.

Örnek: Dosya Yedekleme Script’i Bir dosyayı yedeklemek için komut satırı argümanı olarak dosya adı alınabilir, ancak yedekleme dizinini kullanıcıdan isteyebiliriz.

#!/bin/bash

dosya_adi=$1

if [ -z "$dosya_adi" ]; then
echo "Yedeklenecek dosya adını komut satırında belirtmelisiniz."
exit 1
fi

if [ ! -f "$dosya_adi" ]; then
echo "Belirtilen dosya mevcut değil: $dosya_adi"
exit 1
fi

read -p "Yedekleme yapılacak dizini girin: " yedek_dizin

if [ ! -d "$yedek_dizin" ]; then
echo "Belirtilen yedekleme dizini mevcut değil: $yedek_dizin"
exit 1
fi

cp "$dosya_adi" "$yedek_dizin"
echo "$dosya_adi dosyası $yedek_dizin dizinine yedeklendi."

Bu script, önce dosya adını komut satırından alır, ardından yedekleme dizinini kullanıcıdan ister ve bu bilgileri kullanarak dosyanın yedeğini oluşturur. Bu sayede script, hem komut satırı argümanlarını hem de kullanıcı girdisini etkin bir şekilde kullanır.

Kullanıcı girdisi almak ve komut satırı argümanlarıyla çalışmak, bash scriptleri etkileşimli ve dinamik hale getirmek için güçlü araçlardır. read komutu, kullanıcıdan veri almayı sağlarken, $1, $2 gibi argümanlar scriptlere dinamik veri sağlamanın kolay bir yoludur. Bu yöntemlerin doğru kullanımı, daha esnek, kullanıcı dostu ve yeniden kullanılabilir bash scriptlerin yazılmasına olanak tanır. Etkileşimli scriptler, sistem yönetimi, veri işleme ve otomasyon süreçlerinde daha kullanıcı odaklı çözümler sunarak verimliliği önemli ölçüde artırır.

Tepkiniz ne oldu ?

Heyecanlı
0
Mutlu
0
Aşık
0
Emin değilim
0
Şapşal
0

İlginizi Çekebilir

Bir cevap bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Daha fazlası:Geliştirme