hervasiop12345

agenda

Oct 12th, 2011
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.06 KB | None | 0 0
  1. #!/bin/bash
  2. #Author:jMa
  3. #Description:Agenda que permite agregar, borrar , ordenar de varias formas los contactos
  4. if [ "$#" -gt "1" ]
  5. then
  6.   echo "Error. Llamada: agenda [fichero]"
  7.   exit 1
  8. else
  9.   if [ "$1" = "" ]
  10.   then
  11.     touch agenda.dat ; agenda="agenda.dat"
  12.   elif [ `ls $1 2> /dev/null | wc -l` -lt "1" ]
  13.   then
  14.     echo "Fichero no válido"
  15.     exit 1
  16.   else
  17.      agenda=$1
  18.   fi
  19. fi
  20.  
  21. while [ "$option" != "q" ]
  22. do
  23.   read -p "AGENDA (Introduzca opción. 'h' para ayuda) >> " option
  24.   case $option in
  25.     h)   echo -e "Las opciones disponibles son:
  26.                  q  [Para salir de la agenda]
  27.                  l  [Para listar el fichero por columnas]
  28.                  on [Para ordenar la agenda ascendentemente.Para verla hay que usar l]
  29.                  os [Para odenar la agenda por saldo descendentemente.Para verlo usar luego l]
  30.                   a  [Añadir una línea al fichero]               
  31.                  b  [Borrar una línea. Pedirá el nombre a borrar y borrará por
  32.                     confirmación las líneas donde aparezca este]"
  33.     ;;  
  34.     l) sed "s/:/\n/g" agenda.dat > aux.dat
  35.        echo "----------------- AGENDA ----------------------------"
  36.        echo -e "Nombre\nLocalidad\nSaldo\nTeléfono" | pr --columns=4 -t
  37.        echo -e "------\n---------\n-----\n--------" | pr --columns=4 -t
  38.        pr --columns=4 -ta aux.dat ; rm -f aux.dat
  39.     ;;
  40.     q)
  41.     ;;
  42.     a) read -p "Introduce el nombre: " nombre
  43.        while [ -z "$nombre" ]
  44.        do
  45.          read -p "No has introducido nada , introduce un nombre" nombre
  46.        done
  47.        read -p "Introduce la localidad: " localidad
  48.        while [ -z "$localidad" ]
  49.        do
  50.          read -p "No has introducido nada , introduce una localidad" localidad
  51.        done
  52.        read -p "Introduce el saldo: " saldo
  53.        while [ -z "$saldo" ]
  54.        do
  55.          read -p "No has introducido nada , introduce el saldo" saldo
  56.        done
  57.        read -p "Introduce el teléfono: " telefono
  58.        while [ -z "$telefono" ]
  59.        do
  60.          read -p "No has introducido nada , introduce un teléfono" telefono
  61.        done
  62.        echo "$nombre:$localidad:$saldo:$telefono">>agenda.dat
  63.     ;;
  64.     b) read -p "Introduce el nombre: " nombre
  65.        if [ `grep $nombre agenda.dat | wc -l` -gt "0" ]
  66.        then
  67.          read -p "¿Seguro que quieres borrar la entrada de $nombre (S/N)?" respuesta
  68.          while [ \( "$respuesta" != "S" \) ] && [ \( "$respuesta" != "N" \) ]
  69.          do
  70.            read -p "Error, confirma el borrado (S/N)" respuesta
  71.          done
  72.          if [ "$respuesta" = "S" ]
  73.          then
  74.            sed "/^$nombre/d" agenda.dat > aux.dat ; rm -f agenda.dat ; mv aux.dat agenda.dat
  75.          fi
  76.        else
  77.          echo "No se ha encontrado ninguna entrada con ese nombre"
  78.        fi
  79.     ;;          
  80.     on) sort agenda.dat >aux.dat;rm -f agenda.dat;mv aux.dat agenda.dat
  81.     ;;
  82.     os) sort -t: -k3 -nr agenda.dat >aux.dat;rm -f agenda.dat;mv aux.dat agenda.dat
  83.     ;;
  84.      *) echo "La opción [$option] no es válida"
  85.      ;;          
  86.   esac
  87. done
Advertisement
Add Comment
Please, Sign In to add comment