Foros del Web » Administración de Sistemas » Unix / Linux »

Using autoload Functions

Estas en el tema de Using autoload Functions en el foro de Unix / Linux en Foros del Web. Hola a todos... Este es un tema que hace mucho que no puedo resolver, que es el de poder usar dentro de un script shell ...
  #1 (permalink)  
Antiguo 20/02/2008, 10:37
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Using autoload Functions

Hola a todos...

Este es un tema que hace mucho que no puedo resolver, que es el de poder usar dentro de un script shell (.sh) funciones que declaro en .profile

Por ejemplo la siguiente funcion esta dentro del .profile

Código:
f_mail () {
egrep "$1" /ps_spool/mails.txt | nawk '{ print $NF }' | sort -u
}
Guardo los cambios cierro y abro la session o ejecuto el .profile nuevamente para
aplicar los cambios, cuando realizo esto la funcion se carga perfectamente y puedo usarla en el prompt

Código:
ps_spool># f_mail ' SUX '
[email protected]
Pero esto mismo dentro de un .sh como por ejemplo carga_file_system.sh que hace un check de los files system del equipo y envia un mail en el caso de que alguno de estos se llene.

Puedo poner perfectamente mi mail de manera fija dentro del .sh pero no es la intencion. La idea es que el .sh llame a la funcion f_mail () y envie el aviso a quien tenga el parametro SUX dentro de mails.txt.

Saliendo un poco de la funcionalidad del .sh, otra cosa que lei y que implemente pero que no cambio el resultado fue declarar la ruta donde esta almacenada la funcion en el FPATH dentro del .profile, pero aun asi no anduvo.

Hay algo con un tal typeset -fu que no entiendo muy bien, no he encontrado mucha documentacion con ejemplos para poder entender que es lo que me esta faltando.

Desde ya muchas gracias, por el aporte que puedan hacer.
Respondo cualquier duda que necesiten, para darle una solucion a mi problema.

Saludos. Mario.

tengo un Sun Solaris 10

Última edición por MarioHeredia; 20/02/2008 a las 10:39 Razón: Correccion en la redaccion
  #2 (permalink)  
Antiguo 20/02/2008, 13:42
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Re: Using autoload Functions

¿Porque no pruebas con un alias? A lo mejor eso te funciona mejor.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 21/02/2008, 08:23
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Mensaje Re: Using autoload Functions

Koveart, un alias no me funcionaria, porque se trata de una funcion donde se entran parametros

f_mail ' SYS ' trae un grupo de gente
f_mail ' COM ' trae otro grupo de gente..

Son muchos .sh que hacen diferentes cosas y que deben notificar a diferentes personas, pero todas usan la misma funcion de mail solamente que cambia el parametro de entrada a la funcion.

lo del Alias, ya se me habia ocurrido, pero no pude crear un alias al cual le pueda ingresar algun parametro.

Algo que no comente es que.... la funcion f_mail LA DECLARO NUEVAMENTE DENTRO DE CADA .SH como si fuera una funcion interna y no externa como realmente quiero.

de esta manera, puedo usarla, pero si quiero cambiar una letra, tendria que cambiarla en todos los .sh en los que este.

Saludos, Mario.
  #4 (permalink)  
Antiguo 21/02/2008, 09:22
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Re: Using autoload Functions

Puedes incluir funciones dentro de un shell de funciones y colocas esto en tu script original, es como el include de C o c++

Cita:
source util_functions.sh
Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 25/02/2008, 14:11
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Using autoload Functions

Koveart, funciono lo de incluirlas dentro de un shell y llamarlas.

En un SunOS 5.9 funciono de la siguiente manera:

Código:
#!/usr/bin/ksh

. /example/f_utils.sh

echo "Prueba" | mailx -s "Prueba" `f_mail UX`
y dentro de f_utils.sh tengo:

Código:
/example># cat f_utils.sh
#!/usr/bin/ksh

f_mail () {
egrep "$1" /spool/mails.txt | nawk '{ print $NF }' | sort -u
}
/example>#
Para mas info, me ayudo mucho buscar how use external functions in scripts shell the unix.

external functions

Saludos, Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:41.