#!/bin/bash # Programme de gestion d'agenda téléphonique # Ecrire des enregistrements dans un fichier : nom, prénom # Afficher le menu suivant : # 1. Ajouter une fiche # 2. Supprimer une fiche # 3. Rechercher une fiche (par le nom) # 4. Modifier une fiche # 5. Lister l'annuaire # 6. Fin annuaire_file=annuaire.csv [ -f "$annuaire_file" ] || echo "nom,prenom" > "$annuaire_file" menu() { echo "=====================" echo "ANNUAIRE TÉLÉPHONIQUE" echo "1 Ajouter une fiche" echo "2 Supprimer une fiche" echo "3 Rechercher une fiche par le nom" echo "4 Modifier une fiche" echo "5 Lister l'annuaire" echo "6 Fin" echo "=====================" echo } menu_court() { echo "=====================" echo "ANNUAIRE TÉLÉPHONIQUE" echo "L'annuaire est vide" echo "1 Ajouter une fiche" echo "6 Fin" echo "=====================" echo } add() { read -rp "Nom : " nom read -rp "Prénom : " prenom grep -sq "$nom,$prenom" "$annuaire_file" || echo "$nom,$prenom" >> "$annuaire_file" } remove() { read -rp "Nom : " nom new_annuaire_file=$(mktemp) grep -v "$nom" "$annuaire_file" > "$new_annuaire_file" mv "$new_annuaire_file" "$annuaire_file" echo "Annuaire mis à jour" } search() { read -rp "Nom : " nom grep "$nom" "$annuaire_file" | awk -F',' '{print $2, $1}' } update() { read -rp "Ancien nom : " old_nom read -rp "Nouveau nom : " nom read -rp "Nouveau prénom : " prenom sed -i -E "s/^$old_nom.+$/$nom\,$prenom/" "$annuaire_file" list } list() { tail -n +2 "$annuaire_file" | sort | awk -F',' '{print $2, $1}' } if [ "$(wc -l "$annuaire_file" | awk '{print $1}')" = 1 ]; then menu_court else menu fi while read -r choice; do case $choice in 1) add;; 2) remove;; 3) search;; 4) update;; 5) list;; 6) exit;; *) echo "Je n'ai pas compris";; esac sleep 2 menu done