[LUG.ro] Re: [LUG.ro] manejar señales en bash
J. Mario Oroz
lugro@lugro.org.ar
Mon, 15 Mar 2004 10:54:17 -0300
Hola Pablito!
Mira este script te muestra como usar/interseptar la señal
que genera ^C.
Es un script que corre desde el profile de un usuario llamado internet
que mediante sudo tiene permisos de correr los scritps de sistema
para levantar la interface ppp.
====== Inicio script "conectar" ============
#!/bin/bash
# /bin/bash reconoce como señal a trapear 0-EXIT; bash2 no!
# Proposito:
# Conectarse a internet
#
# 1_ Debe bajar el Servidor PPP ejecutando /usr/bin/swt-ppp.1
# 2_ Usar el script /sbin/ifup con "ppp0" como argumento; puesto que
es la que
# esta configurada.
# 3_ Monitorear cuando se conecta y permitir tipear "CTRL+C" para
desconectar.
#
#
trap /usr/bin/swt-ppp.1 0 2
int_ppp=ppp0
clear
#
# Con este comando bajo el server pppd.
# {Lo levanto en ip-down.local una ves que se baja el link; esto es
# si efectibamente se ha conectado.} Implemente trap en ves de lo
# que esta entre {}
/usr/bin/swt-ppp.1
echo -e "\n Conectandose a INTERNET ..."
echo -e " Pulse 'Ctrl + C' para CANCELAR la conección.\n\n\n"
# Deberia entrar en funcionamiento /usr/bin/swt-ppp.1 al tipear
'CTRL+C'
/sbin/ifup $int_ppp #Deberia interceptar el 'CTRL+C' y ejecutar
/usr/bin/swt-ppp.1
if [ -f /var/run/${int_ppp}.pid ]
then
echo -e "\n\n AHORA ESTA CONECTADO a INTERNET ...\n\n"
echo -n "Para DESCONECTARSE tipee ['C'|'c']: "
read resp
while [ "$resp" != "C" -a "$resp" != "c" ]
do
echo -n "Por Favor; para DESCONECTARSE tipee UNICAMENETE
['C'|'c']: "
read resp
done
/sbin/ifdown $int_ppp
fi
exit 0 #Debe interceptar la salida y ejecutar /usr/bin/swt-ppp.1
======= Fin script "conectar" =============
Cualquier cosa chifla! ;)
Saludos
Mario
----- Original Message -----
From: "Pablito Pilotti" <pablo_foros@yahoo.com.ar>
To: <lugro@lugro.org.ar>
Sent: Saturday, March 13, 2004 7:16 AM
Subject: [LUG.ro] manejar señales en bash
> Hola!
> Estoy aprendiendo a hacer scripts para el bash.
> Mi problema es que no se como manejar la señales SIGINT,y SIGQUIT
> (que es cuando presionan ctrl-c ¿no?)
> En man del bash no me dice mucho. Si alguno me recomienda algun link
> para leer o me tira un ejemplito, se lo agradecere.
> gracias!