Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #Author:jMa
- #Description:Agenda que permite agregar, borrar , ordenar de varias formas los contactos
- if [ "$#" -gt "1" ]
- then
- echo "Error. Llamada: agenda [fichero]"
- exit 1
- else
- if [ "$1" = "" ]
- then
- touch agenda.dat ; agenda="agenda.dat"
- elif [ `ls $1 2> /dev/null | wc -l` -lt "1" ]
- then
- echo "Fichero no válido"
- exit 1
- else
- agenda=$1
- fi
- fi
- while [ "$option" != "q" ]
- do
- read -p "AGENDA (Introduzca opción. 'h' para ayuda) >> " option
- case $option in
- h) echo -e "Las opciones disponibles son:
- q [Para salir de la agenda]
- l [Para listar el fichero por columnas]
- on [Para ordenar la agenda ascendentemente.Para verla hay que usar l]
- os [Para odenar la agenda por saldo descendentemente.Para verlo usar luego l]
- a [Añadir una línea al fichero]
- b [Borrar una línea. Pedirá el nombre a borrar y borrará por
- confirmación las líneas donde aparezca este]"
- ;;
- l) sed "s/:/\n/g" agenda.dat > aux.dat
- echo "----------------- AGENDA ----------------------------"
- echo -e "Nombre\nLocalidad\nSaldo\nTeléfono" | pr --columns=4 -t
- echo -e "------\n---------\n-----\n--------" | pr --columns=4 -t
- pr --columns=4 -ta aux.dat ; rm -f aux.dat
- ;;
- q)
- ;;
- a) read -p "Introduce el nombre: " nombre
- while [ -z "$nombre" ]
- do
- read -p "No has introducido nada , introduce un nombre" nombre
- done
- read -p "Introduce la localidad: " localidad
- while [ -z "$localidad" ]
- do
- read -p "No has introducido nada , introduce una localidad" localidad
- done
- read -p "Introduce el saldo: " saldo
- while [ -z "$saldo" ]
- do
- read -p "No has introducido nada , introduce el saldo" saldo
- done
- read -p "Introduce el teléfono: " telefono
- while [ -z "$telefono" ]
- do
- read -p "No has introducido nada , introduce un teléfono" telefono
- done
- echo "$nombre:$localidad:$saldo:$telefono">>agenda.dat
- ;;
- b) read -p "Introduce el nombre: " nombre
- if [ `grep $nombre agenda.dat | wc -l` -gt "0" ]
- then
- read -p "¿Seguro que quieres borrar la entrada de $nombre (S/N)?" respuesta
- while [ \( "$respuesta" != "S" \) ] && [ \( "$respuesta" != "N" \) ]
- do
- read -p "Error, confirma el borrado (S/N)" respuesta
- done
- if [ "$respuesta" = "S" ]
- then
- sed "/^$nombre/d" agenda.dat > aux.dat ; rm -f agenda.dat ; mv aux.dat agenda.dat
- fi
- else
- echo "No se ha encontrado ninguna entrada con ese nombre"
- fi
- ;;
- on) sort agenda.dat >aux.dat;rm -f agenda.dat;mv aux.dat agenda.dat
- ;;
- os) sort -t: -k3 -nr agenda.dat >aux.dat;rm -f agenda.dat;mv aux.dat agenda.dat
- ;;
- *) echo "La opción [$option] no es válida"
- ;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment