| Asunto: | [mundounix] Shell que controla a otras shells | | Fecha: | 2 de Febrero, 2003 22:22:46 (+0100) | | Autor: | Juan Carlos <jc_britos @.........ar>
|
Hola a todos!!!!!
Soy de argentina, actualmente trabajo con UNIX HP
Va la pregunta:
Tengo el siguiente esquema que he armado para ejecucion de los procedimientos de
la empresa:
Shell principal:
ARMADO :
esta shell verifica que exista un archivo que contiene el utlimo paso de
ejecucion la fecha (AAAMMMDDHHMMSS) y el Process ID.
Si existe toma el paso ultimo de ejecucion y la fecha (la fecha es para
asignarle a todas las corridas la fehca de inicio de ejecucion, asi se haya
comenzado hace diez dias atras)
Sino existe interpreta que es la primera vez que corre.
Segunda shell:
ARMADO.sh
Esta shell carga en memoria las siguientes:
. .DEBITOS_fun.sh es la biblioteca de funciones del producto
. .ARMADO_exp.sh esta contiene todos los exports de las variables que necesita
el procedimiento.
. ARMADO_fun.sh esta contiene las funciones propias de este procedimiento.
Luego de cargarlas en memoria empeiza a ejecutar la exportacion de variables y
ejecuta funciones como la creacion o no del archivo de estados del procedimiento
(esto si tiene o no que crealo lo averiguo cuando ejecuto la shell ARMADO)
una vez hecho esto estan todos los pasos que el procedimiento necesita para
cumplimentar el objetivo.
Mi pregunta es la siguiente:
Cuando ejecuto la shell me encontre que varias variables de entorno, por lo que
sea, ya sea por error de tipeado o porque me olvide de declararlas, contiene
valores nulos.
Lo que necesito es:
agregar un paso a la shell ARMADO.sh que llamara a una funcion del producto (
DEBITOS:fun.sh) y que debera testear si las variables que se exportaron todas
tiene un valor.
si asi no fuera, deberá caesrse el procedimiento y decirme que variables son.
Gracias por la ayuda que puedan darme.
Va ejemplo:
ARMADO esta no hace falta
ARMADO.sh:
. .DEBITOS_fun.sh
. .ARMADO_exp.sh
. .ARMADO_fun.sh
exporto_variales (esta en la ARMADO_exp.sh)
(funcion) (Parametros)
borro_archivos_temporales $LISTA_ARCHIVOS (esta funcion esta en la
DEBITOS_fun.sh)
leo_archivos $MOVIMIENTOS (esta funcion esta en la
ARMADO-_fun.sh)
cargo_archivos $MOVIMIENTOS (esta funcion esta en la
ARMADO_fun.sh)
con esto alcanza para el ejemplo. Sigo .
DEBITOS_fun.sh:
function borro_archivos_temporales {
rm $1
}
ARMADO_fun.sh:
function leo_archivos {
$EJECUTABLES/leo_archivos $1
}
function cargo_archivos {
$EJECUTABLES/subo_archivos $1
}
ARMADO_exp.sh:
export EJECUTABLES=/home/debitos/bin
export MOVIMIENTOS=$ARCHIVOS_DEBITOS
exprot LISTA_ARCHIVOS=
Como veran la variable MOVIMIENTOS tiene asignada un variable no definida y
LISTA_ARCHIVOS no tiene asignacion.
La idea es armar una funcion generica del producto que iria en la DEBITOS_fun.sh
con parametros si los necesita, y que será ejecutada como primer paso de la shell
ARMADO.sh y esa funcion lea la ARMADO_exp.sh y verifique que las variables
exportadas tiene valo, y no estan con nulos.
Espero haber sido claro.
_______________________________________________________________________
Visita nuestro patrocinador:
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~
¿Deseas conocer a alguien al otro lado del mundo...?
¿...al otro lado de la esquina?
¿Deseas hacer nuevos amigos?
!!Conoce la mayor red de contactos y amistades hispana en Internet!!
Haz clic aquí -> http://elistas.net/ml/116/
~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~
|