Basit Adres Defteri v1.0.0

Cevapla
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Basit Adres Defteri v1.0.0

Mesaj gönderen TRWE_2012 »

Bash shell'de basit bir adres defteri oluşturmak için aşağıdaki adımları izleyebilirsiniz. Bu örnek, kullanıcıdan isim, telefon numarası ve e-posta adresi gibi bilgileri alacak, bu bilgileri bir .dat dosyasına kaydedecek ve ardından bu dosyadan verileri okuyarak terminal ekranına basacaktır.Bu versiyon da, kullanıcıdan silmek istediği girişin ismini alacak ve bu isme karşılık gelen kaydı dosyadan silecektir.

Adres Defteri Betiği

Aşağıdaki bash betiğini kullanarak basit bir adres defteri oluşturabilirsiniz:

Kod: Tümünü seç

#!/bin/bash

# Adres defteri dosyası
ADDRESS_BOOK="address_book.dat"

# Kullanıcıdan bilgi al ve yeni giriş ekle
function add_entry {
echo "Yeni bir giriş eklemek için bilgileri girin:"
read -p "İsim: " name
read -p "Telefon Numarası: " phone
read -p "E-posta: " email

# Bilgileri dosyaya ekle
echo "$name, $phone, $email" >> "$ADDRESS_BOOK"
echo "Giriş başarıyla eklendi."
}

# Adres defterini oku ve ekrana yazdır
function display_entries {
echo "Adres Defteri:"
if [ -f "$ADDRESS_BOOK" ]; then
while IFS=, read -r name phone email; do
echo "İsim: $name, Telefon: $phone, E-posta: $email"
done < "$ADDRESS_BOOK"
else
echo "Adres defteri bulunamadı."
fi
}

# Girişi sil
function delete_entry {
read -p "Silmek istediğiniz ismi girin: " name_to_delete

if [ -f "$ADDRESS_BOOK" ]; then
# Geçici dosya oluştur
temp_file=$(mktemp)

# Dosyayı oku ve silmek istemediğimiz girişleri geçici dosyaya yaz
while IFS=, read -r name phone email; do
if [ "$name" != "$name_to_delete" ]; then
echo "$name, $phone, $email" >> "$temp_file"
fi
done < "$ADDRESS_BOOK"

# Geçici dosyayı orijinal dosya ile değiştir
mv "$temp_file" "$ADDRESS_BOOK"
echo "Giriş başarıyla silindi."
else
echo "Adres defteri bulunamadı."
fi
}

# Ana menü
while true; do
echo "Adres Defteri Uygulaması"
echo "1. Yeni Giriş Ekle"
echo "2. Girişleri Göster"
echo "3. Giriş Sil"
echo "4. Çıkış"
read -p "Seçiminizi yapın (1/2/3/4): " choice

case $choice in
1) add_entry ;;
2) display_entries ;;
3) delete_entry ;;
4) echo "Çıkılıyor..."; exit 0 ;;
*) echo "Geçersiz seçim, lütfen tekrar deneyin." ;;
esac
done
Betiği Kaydetme ve Çalıştırma

Yukarıdaki kodu bir dosyaya yapıştırın, örneğin address_book.sh
Betiği çalıştırılabilir hale getirin:

Kod: Tümünü seç

chmod +x address_book.sh
Betiği çalıştırın:

Kod: Tümünü seç

./address_book.sh
Açıklama

Kod: Tümünü seç

delete_entry
fonksiyonu, kullanıcıdan silmek istediği ismi alır.
Geçici bir dosya oluşturur ve orijinal dosyayı okur. Silinmek istenen isimle eşleşmeyen girişleri geçici dosyaya yazar.
Geçici dosya, orijinal dosya ile değiştirilir, böylece silinmiş olur.
Ana menüye "Giriş Sil" seçeneği eklenmiştir.

Adres defteri uygulaması, kullanıcıların giriş eklemesine, görüntülemesine ve silmesine olanak tanır.

Kodlanan adres defteri betiği aşağıdaki işlevleri yerine getiriyor:

Veri Girişi:

Kullanıcı, isim, telefon numarası ve e-posta adresi gibi bilgileri girerek yeni bir giriş ekleyebilir.

Veri Kaydetme:

Girilen bilgiler, address_book.dat adlı bir dosyaya kaydedilir. Her yeni giriş, dosyanın sonuna eklenir.

Veri Görüntüleme:

Kullanıcı, mevcut adres defterindeki tüm girişleri görüntüleyebilir. Bu, dosyadaki tüm kayıtları okuyarak terminal ekranına yazdırır.

Veri Silme:

Kullanıcı, belirli bir isme sahip girişi silme seçeneğine sahiptir. Silmek istediği ismi girdikten sonra, bu isimle eşleşen giriş dosyadan kaldırılır.

Bu işlevler, basit bir adres defteri uygulaması oluşturmak için yeterlidir. Kullanıcılar, adres defterine yeni girişler ekleyebilir,
mevcut girişleri görüntüleyebilir ve istenmeyen girişleri silebilirler.

İşlevlerin Açıklamaları

ADDRESS_BOOK Değişkeni:

ADDRESS_BOOK="address_book.dat":

Adres defterinin kaydedileceği dosyanın adını tanımlar. Bu dosya, kullanıcı girişlerini saklamak için kullanılır.

add_entry Fonksiyonu:

Kullanıcıdan yeni bir giriş eklemek için isim, telefon numarası ve e-posta adresi alır.
read -p komutları ile kullanıcıdan bilgi alınır.
Alınan bilgiler, address_book.dat dosyasına eklenir. >> operatörü, dosyanın sonuna ekleme yapar.
Kullanıcıya girişin başarıyla eklendiği mesajı gösterilir.

display_entries Fonksiyonu:

Adres defterindeki mevcut girişleri görüntülemek için kullanılır.
Eğer address_book.dat dosyası mevcutsa, dosya okunur ve her bir giriş ekrana yazdırılır.
IFS=, ile dosyadaki verilerin virgülle ayrıldığı belirtilir. Bu sayede her bir girişin isim, telefon ve e-posta bilgileri ayrı ayrı
okunur.
Eğer dosya yoksa, kullanıcıya "Adres defteri bulunamadı." mesajı gösterilir.

delete_entry Fonksiyonu :

Kullanıcıdan silmek istediği ismi alır.
Eğer address_book.dat dosyası mevcutsa, geçici bir dosya oluşturulur (temp_file).
Orijinal dosya okunur ve silinmek istenen isimle eşleşmeyen girişler geçici dosyaya yazılır.
Geçici dosya, orijinal dosya ile değiştirilir (mv komutu ile). Bu işlem, silinmiş girişin dosyadan kaldırılmasını sağlar.
Kullanıcıya "Giriş başarıyla silindi." mesajı gösterilir.
Eğer dosya yoksa, kullanıcıya "Adres defteri bulunamadı." mesajı gösterilir.

Ana Menü:

while true; do ... done: Sonsuz bir döngü oluşturur, böylece kullanıcı uygulamadan çıkana kadar menü sürekli olarak gösterilir.
Kullanıcıya adres defteri uygulaması için seçenekler sunulur:

1. Yeni Giriş Ekle: add_entry fonksiyonunu çağırır.
2. Girişleri Göster: display_entries fonksiyonunu çağırır.
3. Giriş Sil: delete_entry fonksiyonunu çağırır.
4. Çıkış: Uygulamadan çıkmak için döngüyü sonlandırır (exit 0).

Kullanıcının yaptığı seçim read -p ile alınır ve case yapısı ile hangi işlemin yapılacağı belirlenir.
Geçersiz bir seçim yapılırsa, kullanıcıya "Geçersiz seçim, lütfen tekrar deneyin." mesajı gösterilir.

Peki .dat dosyası nereye kayıt edilir?

.dat dosyası, betiği çalıştırdığınız dizinde kaydedilir. Yani, address_book.sh betiğini hangi dizinde çalıştırıyorsanız, address_book.dat dosyası da o dizinde oluşturulacaktır.

Örnek

Betiği Çalıştırma:

Örneğin, terminalde /home/kullanici/adres_defteri dizinindeyseniz ve betiği bu dizinde çalıştırıyorsanız:
 

Kod: Tümünü seç

./address_book.sh
Dosyanın Oluşumu:

Betik çalıştığında, yeni girişler eklediğinizde address_book.dat dosyası bu dizinde oluşturulacak ve veriler bu dosyaya kaydedilecektir.

Dosyanın Bulunduğu Yeri Kontrol Etme

Eğer dosyanın nerede olduğunu kontrol etmek isterseniz, terminalde aşağıdaki komutu kullanarak mevcut dizini görebilirsiniz:Bu komut, terminalde bulunduğunuz dizinin tam yolunu gösterir. Ardından, dizinde address_book.dat dosyasının olup olmadığını
kontrol etmek için:Bu komut, mevcut dizindeki dosyaların listesini gösterir. Eğer address_book.dat dosyasını görüyorsanız, dosya başarıyla
oluşturulmuş demektir.

Dosyanın Farklı Bir Yerde Oluşturulması

Eğer .dat dosyasını belirli bir dizinde oluşturmak isterseniz, ADDRESS_BOOK değişkenini güncelleyerek dosyanın tam yolunu
belirtebilirsiniz.

Örneğin:

Kod: Tümünü seç

ADDRESS_BOOK="/home/kullanici/adres_defteri/address_book.dat"
Bu durumda, dosya belirtilen dizinde oluşturulacaktır.
Dosya ekleri
basit_adres_defteri_v1.sh.7z
TRWE_2012 tarafından kodlandı
ŞUBAT 2025
(924 Byte) 58 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
Cevapla

“Bash Shell Betiklerimiz” sayfasına dön