[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!