ayuda con Script en Bash

Iniciado por andaluz, 26 Enero 2012, 18:28 PM

0 Miembros y 1 Visitante están viendo este tema.

andaluz

Hola a todos, estoy realizando un Script en Bash y tengo algunas dudas las cuales me gustaría que me las resolvieran a medida que voy haciendo el script.

Enunciado del Script:

   Crear un script que permita generar una factura por pantalla. para ello, se debera pedir en primer lugar, nombre y dni del usuario, y a continuacion cuantos articulos se van a comprar. a partir de ahi, existe un fichero en la misma carpeta del scipt, llamado productos.txt, donde estan los codigos, los nombres y el precio de cada producto. el usuario mostrara en pantalla el codigo de cada uno de los productos que desea comprar y la cantidad de ellos, y el script ira guardando todo esto en un fichero pra generar despues lafacura que recogera lo siguiente:

######################################################
FACTURA
######################################################
Fecha: ----------------
Cliente: --------
DNI: -----------
######################################################
Codigo####Descripcion####Cantidad####U.P.####Total####
######################################################
C.2110 producto1 3 5.30  15.90
C.2012 producto2 8 15.20 121.60
######################################################
      SUBTOTAL: 137.50
IVA 18%:  24.75
###############
IMPORTE: 162.25

     IDEA: usar la calculadora bc: c=$(echo 22.5 + 3.75 | bc) y el comando cut para acceder a los codigos, precio y nombres de los productos. el fichero productos.txt puede ser el siguiente:

C.001#caja de CD's 32x 25uds, Verbatin#5.25
C.002#raton laser, logitec#4.50
C.003#pen drive 8GB, Kingston#7.10
C.004#kiingston micro SD 4GB#3.90

Ahora os pongo el codigo que he realizado y os comento la duda dentro del código:

Código (bash) [Seleccionar]

#!/bin/bash

echo ""
echo "LISTADO DE PRODUCTOS"
echo "-------------------------------------------"
cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt
echo "-------------------------------------------"
echo ""

i=1
read -p "elige el producto $i que desees o S para salir: " prod
echo "prod1: "$prod

#        en la variable codig quiero guardar la primera columna del fichero, pero me sale toda la columna en una linea y creo que es
# por eso por lo que no me funciona lo que he realizado mas adelante de del head | tail, como lo tendria que hacer???
codig=$(cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | cut -d "#" -f 1 | grep '^[C,c]\.[0-9]\{3\}$')
echo "Codig: "$codig

while [ $prod != 'S' ]
do
echo "i: "$i
linea_cod_fich=$(head -$i /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | tail -1)
i=$(expr $i \+ 1)
read -p "elige el producto $i que desees o S para salir: " prod
echo "prod1: "$prod
echo "Cod_fich: "$cod_fich
echo "linea_cod_fich: "$linea_cod_fich
exit while
done


Espero que me puedan ayudar, saludos

andaluz