script bash (ubuntu): Parar un proceso sin salir del script (SOLUCIONADO)

Iniciado por moikano→@, 18 Octubre 2010, 09:16 AM

0 Miembros y 1 Visitante están viendo este tema.

moikano→@

El caso es:
-Empieza un proceso que muestra el resultado a tiempo real por consola.
-El usuario tiene que parar el proceso cuando tenga elegido uno de los datos que se muestran por consola.
-Para el proceso cuando quiera (con un intro mismo) pero no para el script!, es decir no me vale un "exit" y un "break" tampoco porque no estoy utilizando una sentencia de bucle.

Gracias por leer =)

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

moikano→@

#2
Ok. Se trata de automatizar la ejecución de aircrack, que solo tengas que escribir el interfaz, el canal,... Se que no es muy practico, pero es para familiarizarme con los scripts de linux.

Código (bash) [Seleccionar]
echo $(airodump-ng 'mon')
read -p 'pulsa intro cuado veas una red que quieras'
break


Está puesto "break" para acordarme yo que ahí va la parada, pero esta claro que no funciona.

Sin usar el script esto se cortaria pulsando control+c , pero no se como introducirlo. Gracias de antemano.

moikano→@

#3
OK, probando me e dado cuenta de que no es el único error que e encontrado en el script, de echo no me deja entrar ni siquiera en modo monitor. Os dejo el script completo para criticar e rectificar, todo ello será agradecido.

Código (bash) [Seleccionar]
#!/bin/bash
iwconfig
read -p 'introduce el interfaz a usar: ' inter
airmon-ng start 'inter'
read -n 4 -p 'introduce el monitor que utilizaras para cambiar su mac: ' mon
ifconfig 'mon' down
macchanger -m aa:00:aa:00:aa:00 'mon'
airodump-ng 'mon'
echo 'pulsa control+c cuando veas la red'
read -p 'introduce el nombre de la red: ' nom
read -n 17 -p 'introduce la mac: ' mac
read -n 2 -p 'introduce su canal: ' can
airodump-ng -w 'nom' -c 'can' --bssid 'mac' 'mon'

leogtz

Aún con lo que has dicho no te has explicado nada, ¿qué es lo que quieres?

Te voy a poner un script que quiero que pruebes, y trata de explicarte mejor.


Código (bash) [Seleccionar]
#!/usr/bin/bash
trap 'prueba' EXIT;
function prueba()
{
# Cuando se provoca la señal EXIT, el script viene a dar aquí a esta función
# O cuando el usuario provoca un CTRl + C
echo -e "Estoy dentro de la función";
read;
}
read -p "Escriba algo o prueba CTRL + C";
echo -e "Has escrito : ${REPLY}";
exit 0
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

moikano→@

#5
Le echo un vistazo enseguida.
Según e leido el trap (que es el único parametro que no conozco) se acciona cuando el comando recibe un crt+c o un exit. Creo que es un parche para el problema, pero no lo soluciona del todo, ya que tendria que seguir todo el código del script dentro de la sentencia trap.
De todas formas estoy hablando deprisa porque aún no lo e probado.
Gracias Leo =)

moikano→@

Ok si que me sirve el comando trap, lo estuve probando y es lo que necesitaba, gracias Leo y perdona si no me explique bien. =)