Redes-Linux.com
Esta página esta optimizada para ser visualizada tanto en navegadores gráficos, como en navegadores de texto.
 
Buscar en:


 
El Servidor
Current bandwidth utilization 0.01 Mbit/s
Ancho de banda utilizado
 
Redes-Linux
 
Tip Today by ugu.com
 
Más cosas
 
Conóceme
   [Registrarse]  [Editar Perfil]  [Editar sus Preferencias]  [Buscar]
[Mensajes Privados]  [Lista de miembros]  [preguntas]  [Entrar]
Redes-Linux Forum Index » » Redes en otros sistemas Unix » » AYUDA en shell Scripts URGENTE
Autor AYUDA en shell Scripts URGENTE
gmartinez


Registrados: Oct 17, 2005
Mensajes: 1
De: UVM
Publicado: 2005-10-17 14:38   

DESCRIPCIN

En este primer ejercicio deberis desarrollar un shell script (Verifica) capaz de analizar si un conjunto de comandos contenidos en un archivo siguen las normas sintcticas que para los mismos se especifican (proceso conocido como parsing).


FUNCIONAMIENTO.

En primer lugar describimos los comandos que pueden aparecer en el “archivo de comandos” y su sintaxis:

&#8226; Comprar:<ID_MAT>:<CANTIDAD>

Donde: <ID_MAT> (identificacin de un material) y <CANTIDAD> (cantidad de material a comprar), sern cadenas de caracteres.

&#8226; Vender:<ID_MAT>:<CANTIDAD>

Donde: <ID_MAT> (identificacin de un material) y <CANTIDAD> (cantidad de material a vender), sern cadenas de caracteres.

&#8226; Modificar:<OPERACION>:<ID_MAT>:<ID_PROV>:<COSTO>

Donde: <OPERACION> (operacin a realizar), <ID_MAT> (identificacin de un material), <ID_PROV> (identificacin del proveedor) y <COSTO> (costo del material), sern cadenas de caracteres.

&#8226; Listar:<ID_MAT>

Donde: <ID_MAT> (identificacin de un material), ser una cadena de caracteres.


Ahora definimos un archivo de comandos como aquel que contiene un conjunto indeterminado de ocurrencias de los comandos antes definidos. Por ejemplo (1):

Comprar:1:5
Vender:2:3
Comprar:3:4
Vender:5:2
Modificar:0:7:2:3
Listar:4
...
...
...

Finalmente el shell script que desarrollaris debe leer un archivo de comandos, que puede contener comandos con errores sintcticos, para producir un nuevo archivo de comandos sin errores, indicando adems por pantalla en qu comandos se han encontrado los errores. Los nombres de los ficheros de entrada y salida sern pasados a Verifica por parmetro.

As, si el archivo de comandos de entrada anterior incluyera ahora:

Comprar:1:5
Vender: 2:3
Vender:4 &#61664; (falta un parmetro)
Comprar:3:4
Vender:5:2
Comprar:2:5:6 &#61664; (hay un parmetro de ms)
Modificar:0:5:2:3
Listar:4
Proveedores &#61664; (el comando no es reconocido)
...
...
...

Debera producirse como salida el archivo (1), y adems indicarse por pantalla los siguientes errores:

Comando &#8220;Vender:4&#8221; incorrecto: falta un parmetro
Comando &#8220;Comprar:2:5:6&#8221; incorrecto: hay un parmetro de ms
Comando &#8220;Proveedores&#8221; desconocido

Una vez implementado el script Verifica, y dada la siguiente estructura y semntica de ficheros:

<materiales>: este fichero mantendr informacin acerca de los materiales disponibles, y su formato ser:
<ID_MAT>:<DESC>:<MIN>:<MAX>:<CANT>

Donde cada campo posee el siguiente significado:
<ID_MAT>: es la identificacin del material y deber ser nica (no habr 2 materiales con la misma identificacin).
<DESC>: Descripcin del material.
<MIN>: Mnima cantidad de material que puede haber en stock.
<MAX>: Mxima cantidad de material que puede haber en stock.
<CANT>: Cantidad de material que actualmente hay en stock.

<proveedores>: este fichero contendr la informacin referente a los proveedores de materiales, y poseer el siguiente formato:
<ID_PROV>:<NOMBRE>

Donde cada campo posee el siguiente significado:
<ID_PROV> : Identificacin del proveedor (valor que no ha de repetirse para distintos proveedores).
<NOMBRE>: describe el nombre del proveedor.

<provee>: este fichero contendr la informacin referente a qu proveedor provee qu material, y a qu costo:
<ID_PROV>:<ID_MAT>:<COSTO>

Donde cada campo posee el siguiente significado:
<ID_PROV> : Identificacin del proveedor.
<ID_MAT>: Identificacin del material.
<COSTO>: Costo por unidad del material <ID_MAT> para el proveedor <ID_PROV>.

Se ha de implementar el script que se describe a continuacin. Tal script se corresponder con uno de los comandos interpretados como correctos por el script desarrollado (verifica):

&#8226; Modificar:<OPERACION> <ID_MAT> <ID_PROV> <COSTO>
Este script debe, en funcin del campo <OPERACION> realizar una de dos acciones:

Si (<OPERACION> == 0) entonces:
Se ha de agregar un registro en el fichero <provee> utilizando los campos <ID_MAT>, <ID_PROV> y <COSTO>.
Para poder aplicar la operacin se debe cumplir que:
1. <ID_MAT> exista en el fichero de <materiales> como identificacin de un material.
2. <ID_PROV> exista en el fichero de <proveedores> como identificacin de un proveedor.
3. El registro <ID_PROV>:<ID_MAT>:<COSTO>, no exista en el fichero <provee>.

Sino si (<OPERACION> == 1) entonces:
Se ha de eliminar un registro del fichero <provee> utilizando los campos <ID_MAT> e <ID_PROV> para encontrar el registro pertinente.
Para poder aplicar la operacin se debe cumplir que:
1. El registro <ID_PROV> : <ID_MAT> exista en el fichero <provee>. El campo <COSTO> puede contener cualquier valor.

Si alguna condicin no se cumple, o la operacin no es reconocida, entonces se deber indicar el error.


IMPLEMENTACIN

En primer lugar, es recomendable que creis un directorio en vuestra cuenta de Solaris que contenga los ejercicios sobre shell scripts. En el mismo programareis el shell script que corresponde a este ejercicio, y que podramos llamar Verifica.
El script Verifica debe recibir como argumentos el nombre del archivo de comandos a analizar (fuente) y el nombre del archivo de comandos en el que se almacenarn los comandos correctos (destino).
El algoritmo a seguir consiste en leer el archivo fuente lnea a lnea y dependiendo del comando ledo (primer campo) realizar las verificaciones posibles (nmero de campos). Si la sintaxis es correcta la lnea debe aadirse al archivo destino (reemplazando los &#8220;:&#8221; por espacios en blanco) y si no debe indicarse el error. NOTA: entre los campos y el separador &#8220;:&#8221; no hay espacios en blanco.
En ambos casos debe seguirse con el procesamiento del archivo fuente.
El script Listar debe encontrarse en el mismo subdirectorio en el que desarrollasteis el ejercicio anterior (Verifica).
El script Listar no debe realizar comprobacin de argumentos, es decir, podis asumir que los mismos son siempre correctos, las nicas comprobaciones que deben realizarse son las enunciadas en el apartado de funcionamiento.


Necesito URGENTE AYUDA


  Ver Perfil de gmartinez      Editar/Borrar este Mensaje   Responder citando
brias


Registrados: Oct 21, 2003
Mensajes: 692
Publicado: 2005-10-17 15:44   
jajajjajajajaj

y el tipo nos pone aqu sus deberes!
jajajjajajajajjaj


  Ver Perfil de brias        Editar/Borrar este Mensaje   Responder citando
  
Cerrar este Tema Mover este Tema Borrar este Tema