Agenda telefonica in Bash script - versiunea cu functii:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| #!/bin/sh
# Agenda telefonica in bash
BOOK="new-phone.txt"
Adauga(){
echo "Aceasta este Agenda Telefonica"
echo -n "Introduceti numele persoanei: "
read nume
echo -n "Intoduceti numarul de telefon: "
read numar_telefon
echo "Doriti salvarea datelor introduse: "
echo -e "$nume ; $numar_telefon \n"
echo -n "y/n: "
read raspuns
if [ "$raspuns" == "y" ]
then
#Scrie valorile in fila
echo "$nume ; $numar_telefon" >> $BOOK
else
#Mesajul afisat utilizatorului
echo "$nume ; $phone Nu a fost scris in $BOOK"
fi
}
Afiseaza(){
echo "Numarul liniei: Nume ; Numar de telefon"
#Afiseaza numele si nr tel cu numar de linie
nl --number-separator=": " $BOOK | less
}
Sterge(){
echo "Ce linie din agenda doriti sa stergeti: "
read numar
#Redenumiti fila inainte de stergere"
mv $BOOK book.txt
#Adauga numere de linie si sterge
nl --number-separator=":" book.txt | grep -v $numar_telefon: | awk -F: '{print $2}' | tee $BOOK
}
Gaseste(){
echo -n "Ce persoana sau numar de telefon cautati?: "
read find
echo "Nume ; Numar de telefon"
grep -i $find $BOOK
}
Agenda(){
exit=0
while [ $exit -ne 1 ]
do
echo "Ce operatie doriti sa executati?"
echo -e "adauga, afiseaza, gaseste, sterge, exit: "
read raspuns
if [ "$raspuns" = "adauga" ]
then
Adauga
elif [ "$raspuns" = "afiseaza" ]
then
Afiseaza
elif [ "$raspuns" = "sterge" ]
then
Sterge
elif [ "$raspuns" = "gaseste" ]
then
Gaseste
elif [ "$raspuns" = "exit" ]
then
exit=1
else
echo "Comanda dvs nu este in lista!"
fi
done
}
#De aici incepe executia scriptului
Agenda
|
Imaginea urmatoare este din editorul de text vim:
O agendă telefonică în limbajul de programare bash.Prima fila este adauga.sh - cere introducerea contactului si il salveaza intr-o fila "address-book.txt":
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| #!/bin/sh
# numele filei in care se salveaza contactele
BOOK="address-book.txt"
# Intreaba utilizatorul pentru numele contactului
echo -n "Numele persoanei: "
read name
# intreaba utilizatorul despre numarul de telefon
echo -n "Numarul de telefon: "
read phone
# afiseaza raspunsurile si cere confirmarea
echo "Vreti salvarea datelor introduse: "
echo -e "$name ; $phone \n"
echo -n "y/n: "
read answer
if [ "$answer" == "y" ]
then
# Scrie valorile in fila
echo "$name ; $phone" >> $BOOK
else
# Mesajul afisat utilizatarului
echo "$name ; $phone NU a fost scris in $BOOK"
fi
exit 0
|
Fila care afiseaza contactele:
1
2
3
4
5
6
7
8
9
| #!/bin/sh
BOOK="address-book.txt"
# Afiseaza capetele de tabel
echo "Numarul liniei: Nume ; Nuamr de telefon"
# Afiseaza agenda telefonica cu numar de linii si pauze cu less
nl --number-separator=": " $BOOK | less
|
Fila care gaseste contactele:
1
2
3
4
5
6
7
8
9
10
| #!/bin/sh
BOOK="address-book.txt"
echo -n "Ce persoana sau numar cautati?"
read find
# Afiseaza titlul inaintea cautarii
echo "Nume ; Numar de telefon"
grep -i $find $BOOK
|
Fila care sterge contactele:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #!/bin/sh
BOOK="address-book.txt"
# intreaba utilizatorul ce linie sa sterga
echo -n "Ce linie doriti sa stergeti: "
read number
# Redenumiti filaq inainte de stergere
mv $BOOK boo.txt
# Adauga numere de linie si sterge
nl --number-separator=":" boo.txt | grep -v $number: | awk -F: '{print $2}' | tee $BOOK
|
Si fila care leaga intreaga aplicatie:
RESURSE:
http://lions-wing.net/lessons/database/address.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| #!/bin/sh
BOOK="address-book.txt"
exit=0
while [ $exit -ne 1 ]
do
echo "Ce operatie doriti sa executati?"
echo -e "adauga, afiseaza, gaseste, sterge, exit: "
read answer
if [ "$answer" = "adauga" ]
then
./adauga.sh
elif [ "$answer" = "afiseaza" ]
then
./afiseaza.sh
elif [ "$answer" = "sterge" ]
then
./sterge.sh
elif [ "$answer" = "gaseste" ]
then
./gaseste.sh
elif [ "$answer" = "exit" ]
then
exit=1
else
echo "Comanda dvs nu este in lista!"
fi
done
exit 0
|
Comentarii
Trimiteți un comentariu