Article View: es.comp.os.linux.programacion
Article #16166Script para llevar la contabilidad domestica
From: Esteban
Date: Sat, 06 May 2000 00:00
Date: Sat, 06 May 2000 00:00
398 lines
8620 bytes
8620 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Que nadie se r�a que no tengo ni p.i de programaci�n, pero he confeccionado un
peque�o programilla con el bash de linux para llevar las cuentas de casa.
Lo posteo aqu� por si alguien se le ocurre algo para mejorarlo/depurarlo
- ------------------PRINCIPIO------------------
#!/bin/bash
# PROGRAMA DE CONTABILIDAD DOMESTICA
# Creado por Esteban Navarro (scandisk)
mkdir -p ~/conta
sort ~/conta/dat > ~/conta/temp # ordena alfab�ticamente
cat ~/conta/temp > ~/conta/dat
clear
echo ""
echo ""
echo ""
echo " _________________________________________________________________"
echo " | |"
echo " | C O N T A B I L I D A D D O M � S T I C A |"
echo " | |"
echo " | MEN� DE OPCIONES |"
echo " | ================ |"
echo " | |"
echo " | A.- ALTA C.- CONSULTA |"
echo " | |"
echo " | M.- MODIFICAR B.- BAJA |"
echo " | |"
echo " | CM.- CONSULTA MULTIPLE |"
echo " | |"
echo " | |"
echo " | |"
echo " | Q.- QUIT |"
echo " |_________________________________________________________________|"
echo ""
echo ""
echo ""
echo -n " Introduce una opci�n: "
echo -n""
read opcion
if test $opcion = a
then
# MEN� DE ALTA
clear
echo ""
echo ""
while :
do
c=`fgrep -i "Registro" /home/scandisk/conta/dat | tee /dev/tty | wc -l`
registro=`expr 1 + $c`
clear
echo ""
echo " MEN� DE ALTA"
cal -m
echo ""
echo " Registro : $registro"
echo ""
echo -n " Fecha : "
echo -n ""
read fecha
clear
echo ""
echo ""
echo " Registro : $registro"
echo ""
echo " Fecha : $fecha"
echo ""
echo -n " Concepto : "
echo -n ""
read concepto
clear
echo ""
echo ""
echo " Registro : $registro"
echo ""
echo " Fecha : $fecha"
echo ""
echo " Concepto : $concepto"
echo ""
echo -n " Lugar : "
echo -n ""
read lugar
clear
echo ""
echo ""
echo " Registro : $registro"
echo ""
echo " Fecha : $fecha"
echo ""
echo " Concepto : $concepto"
echo ""
echo " Lugar : $lugar"
echo ""
echo -n " Importe : "
echo -n ""
read importe
clear
echo ""
echo ""
echo " Registro : $registro"
echo ""
echo " Fecha : $fecha"
echo ""
echo " Concepto : $concepto"
echo ""
echo " Lugar : $lugar"
echo ""
echo " Importe : $importe"
echo ""
echo -n " Estado : "
echo -n ""
read estado
clear
echo ""
echo ""
echo " Registro : $registro"
echo ""
echo " Fecha : $fecha"
echo ""
echo " Concepto : $concepto"
echo ""
echo " Lugar : $lugar"
echo ""
echo " Importe : $importe"
echo ""
echo " Estado : $estado"
echo ""
echo ""
echo ""
echo -n " �Otro? s/n : "
echo -n ""
echo " Registro: $registro , $fecha , $concepto , $lugar , $importe , \n
$estado" >> ~/conta/dat
read sn
if [ "$sn" != "s" ]
then
exec conta
fi
done
else if test $opcion = c
then
# MEN� CONSULTA
while :
do
clear
echo ""
echo " MEN� CONSULTA"
echo ""
echo -n " B�squeda : "
echo -n""
read busca
grep -i $busca ~/conta/dat > ~/conta/temp
echo ""
echo ""
typeset -i num
IFS=","
let total=0
grep -i "Registro: " ~/conta/temp |(\
while read foo bar pep cdr num rtp
do
echo "$num"
let total=$total+$num
done
clear
echo ""
echo ""
cat ~/conta/temp
echo ""
echo ""
echo " Total: $total"
)
echo ""
echo " �Quieres consultar otro? s/n :"
echo -n ""
read sn
if [ "$sn" != "s" ]
then
exec conta
fi
done
else if test $opcion = m
then
# MEN� MODIFICAR
while :
do
clear
echo ""
echo ""
echo " OPCION MODIFICAR"
echo ""
echo -n " Registro a modificar : "
echo -n ""
read num
grep "Registro: $num" ~/conta/dat > ~/conta/temp
echo ""
cat ~/conta/temp
echo ""
echo -n " �Es este el que quieres modificar? s/n : "
echo -n ""
read sn
if [ "$sn" != "s" ]
then
exec conta
fi
egrep -v "Registro: $num" ~/conta/dat > ~/conta/temp
cat ~/conta/temp > ~/conta/dat
# MEN� DE ALTA, DESPUES DE MODIFICAR
echo ""
echo " Registro a Modificar : $num "
echo ""
echo -n " Fecha : "
echo -n ""
read fecha
echo ""
echo -n " Concepto : "
echo -n ""
read concepto
echo ""
echo -n " Lugar : "
echo -n ""
read lugar
echo ""
echo -n " Importe : "
echo -n ""
read importe
echo ""
echo -n " Estado : "
echo -n ""
read estado
echo " Registro: $num , $fecha , $concepto , $lugar , $importe , \n
$estado" >> ~/conta/dat
echo ""
echo " <MODIFICACION EJECUTADA>"
echo ""
echo " Pulse una tecla para continuar...."
read pausa
exec conta
done
else if test $opcion = b
then
# MEN� BAJA
clear
echo ""
echo ""
echo " OPCION BAJA"
echo ""
echo -n " Registro para dar de BAJA : "
echo -n ""
read num
grep "Registro: $num" ~/conta/dat >> ~/conta/bajas
grep "Registro: $num" ~/conta/dat > ~/conta/temp
echo ""
echo ""
egrep -v "Registro: $num" ~/conta/dat > ~/conta/temp
cat ~/conta/temp > ~/conta/dat
echo " Registro: $num" >> ~/conta/dat
echo " HA SIDO DADO DE BAJA EL REGISTRO N� $num"
echo ""
echo -n " Enter para continuar...."
echo -n ""
read pausa
exec conta
else if test $opcion = cm
then
while :
do
clear
echo ""
echo ""
echo " MEN� CONSULTAS M�LTIPLES"
echo ""
echo ""
echo -n " Primer Par�metro : "
echo -n ""
read primer
echo ""
echo -n " Segundo Par�metro : "
echo -n ""
read segundo
grep -i $primer ~/conta/dat > ~/conta/temp
grep -i $segundo ~/conta/temp > ~/conta/temp2
echo ""
echo ""
cat ~/conta/temp2
echo ""
echo ""
echo " �Quieres consultar otro? s/n :"
echo -n ""
read sn
if [ "$sn" != "s" ]
then
exec conta
fi
done
else if test $opcion = q
then
clear
echo ""
echo ""
echo " FIN DEL PROGRAMA"
echo ""
echo " Creado por Esteban Navarro -scandisk-"
echo ""
echo ""
exit
fi
fi
fi
fi
fi
fi
exit
- -----------------------------------FIN---------------------------------
- --
Esteban Navarro (User Linux 132409)
Fondos Escritorio: http://www.ctv.es/USERS/scandisk
Clave P�blica E-Mail asunto: PGPKEY
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE5FFHva3aqF90Ua+oRAmq7AKCtqS16SEkI55yMSHE0bxb9SEjsCACffQfx
pbNkttsMxRFwHBYGPDInn3U=
=12yT
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<slrn8h8kfk.38c.scandisk@localhost.localdomain>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,c1e5172522caf03c,start X-Google-Attributes: gidf86c8,public From: scandisk@ctv.es (Esteban) Subject: Script para llevar la contabilidad domestica Date: 2000/05/06 Message-ID: <slrn8h8kfk.38c.scandisk@localhost.localdomain> X-Deja-AN: 620016804 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@news.wanadoo.es X-Trace: m2newsread.uni2.es 957632765 62.36.116.116 (Sat, 06 May 2000 19:06:05 MET DST) Organization: Wanadoo Usenet News - Visita http://www.wanadoo.es/ Mime-Version: 1.0 User-Agent: slrn/0.9.6.2 (Linux) Reply-To: scandisk@ctv.es NNTP-Posting-Date: Sat, 06 May 2000 19:06:05 MET DST Newsgroups: es.comp.os.linux.programacion