[Bourne Shell]
[Pagina anterioara][Pagina continut][Pagina urmatoare]

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.
[Pagina anterioara][Pagina continut][Pagina urmatoare]