Programul principal de administrare a agendei
#!/bin/bash
fisier=./agenda
. functii
if [ -f $fisier ]
then
.
else
echo "Fisierul $fisier nu exista"
exit 1
fi
while true
do
clear
echo "Selectati optiunea:"
cat << EOF
[1] ADAUGARE
[2] STERGERE
[3] MODIFICARE
[4] AFISARE
[5] CAUTARE
[6] IESIRE DIN PROGRAM
EOF
read optiune
case $optiune in
1) adaugare ;;
2) stergere ;;
3) modificare ;;
4) cat agenda
echo "Apasati o tasta pentru continuare"
read nothing
;;
5) cautare ;;
6) exit 0;;
*) echo "optiune gresita" ;;
esac
done
Fisierul denumit functii in care sunt definite functiile de adaugare, cautare, stergere si modificare
#!/bin/bash
adaugare ()
{
while true
do
echo "Adaugare de informatii..."
echo "Introduceti numele:"
read nume
echo "Introduceti prenumele:"
read prenume
echo "Introduceti nr de tel:"
read nrtel
echo $nume:$prenume:$nrtel
echo "Datele sunt corecte? (D/N)"
read raspuns
case $raspuns in
[Dd]) echo "Adaugare..."
echo "$nume:$prenume:$nrtel" >> agenda
sort -n agenda -o agenda
echo "Continuati introducerea? (D/N)"
read rasp
if [ $rasp = D -o $rasp = d ]
then
continue
else
return
fi ;;
*) echo "Incercati din nou? (D/N)"
read r
case $r in
[Dd]) continue;;
*) exit;;
esac
esac
done
}
stergere ()
{
echo "Introduceti numele:"
read nume
grep $nume agenda > agenda.tmp
if [ ! -s agenda.tmp ]
then
echo "Numele $nume nu exista!"
sleep 2
return
fi
#echo "Stergerea a fost facuta!"
#mv agenda.tmp1 agenda
#sleep 2
for line in `cat agenda.tmp`
do
echo $line
echo "Stergeti aceasta inregistrare?(D/N)"
read rasp
if [ "$rasp" = d -o "$rasp" = D ]
then
grep -v $line agenda > agenda.tmp1
echo "Sters..."
sleep 2
else
echo "Inregistrarea nu a fost stearsa!"
sleep 2
fi
done
mv agenda.tmp1 agenda
}
cautare ()
{
echo "Introduceti numele cautat:"
read nume
grep "$nume" agenda > agenda.tmp
if [ ! -s agenda.tmp ]
then
echo "Persoana cu numele $nume nu exista in agenda!"
sleep 2
else
cat agenda.tmp | more
echo "Apasati ENTER pentru continuare..."
read nimic
fi
}
modificare ()
{
echo "Introduceti numele cautat:"
read nume
grep "$nume" agenda > agenda.tmp
if [ ! -s agenda.tmp ]
then
echo "Persoana cu numele $nume nu exista in agenda!"
sleep 2
return
else
for line in `cat agenda.tmp`
do
echo $line
echo "Modificati? (D/N)"
read rasp
if [ $rasp = D -o $rasp = d ]
then
echo -n "Noul nume: "
read nume
echo -n "Noul prenume: "
read prenume
echo -n "Noul nr de telefon: "
read nrtel
newline="$nume:$prenume:$nrtel"
sed s/"$line"/"$newline"/ agenda > agenda.new
if [ "$?" -eq 0 ]
then
echo "Ok! Modificarea a fost facuta!"
mv agenda.new agenda
sleep 3
else
echo "Problem!"
sleep 3
fi
fi
done
fi
}
Observatii
Inregistrarile din fisierul agenda au forma:
Nume:Prenume:nrtelefon, adica:
Ionescu:Adrian:0722-222222
Popescu:Marcel:0744-444444
...
etc.
|