elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Control + C en ShellScript
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Control + C en ShellScript  (Leído 2,292 veces)
Anubis__

Desconectado Desconectado

Mensajes: 6


Dios de los muertos


Ver Perfil
Control + C en ShellScript
« en: 28 Julio 2008, 14:40 pm »

Buenas,

Es el primer mensaje que escribo por aqui y no sabia muy bien si iba aqui o no, pero como es script...Si os gsuta mas en otro lado, lo moveis!.

Pues vereis, el problema que tengo es que el otro dia hice un programa muy simple para automatizar el envio de emails con netcat, pide nombre de archivo, destinatario, remite, asunto y mensaje en si, vamos, algo muy sencillito.
Mi problema es que cuando se ejecuta el netcat y se envia el mensaje se queda "esperando", no hace nada hasta que pulso "control + C" que ya pone lo enviado/recibido, saliendo y aparece el "prompt".

Esto en principio no seria un problema, pero si quisiera enviar mas de un email a la vez, pongo un bucle for y la ejecucion se detiene en el primer envio, y al pulsar control C se detiene toda la ejecucion...Asi que la pregunta es..¿Que comando podria escribir para que cerrase la conexion pero volviese a ejecutar los bucles que le falten"? Por aqui os dejo el codigo a ver si cambiariais algo y demas, como vereis es muy rudimentario, no sabia nada de SC ya que vengo de un poquito de Pascal, asi que poco a poco!!

Código:
#!/bin/bash


echo ¿Que nombre quieres dar al email?
read "nombre"

if test -r $nombre
then $nombre | nc -vv -w 3 127.0.0.1 25
else

touch $nombre

echo ¿Con que email quieres mandarlo?
read "email"

echo ¿a quien quieres enviarselo?
read "enviar"

echo ¿Cual es el asunto?
read "asunto"

echo ¿cual es el mensaje?
read "mensaje"

echo ¿cuantas veces quieres mandarlo?
read "veces"

echo "helo GodsEye@GodsHand.org" >> $nombre
echo "mail from: $email" >> $nombre
echo "rcpt to: $enviar" >> $nombre
echo "data"  >> $nombre
echo "From: $email" >> $nombre
echo "To: $enviar" >> $nombre
echo "Subject: $asunto" >> $nombre
echo "$mensaje" >> $nombre
echo "." >> $nombre


for cont in $(seq "$veces")
do
cat $nombre | nc -vv -w 3 127.0.0.1 25
done


fi



echo ""
echo "############# Mensaje enviado ##############"
echo "############# Pulsa control+C ##############"
echo ""

[Actualizado] He reescrito la parte del bucle y ahora si funciona, pero estamos en las mismas, para que salte de uno a otro hay que pulsar control + c y poniendo kill, o kill -l se ejecuta una vez y sale, lo cual, no entiendo!.

Y ya he visto que en "linux" hay un apartado para shellscript, siento el fallo y espero que algun moderador me lo mueva cuando lo vea!

Gracias por adelantado.

[Actualizado] Me autocontesto a mi mismo, resulta que era mucho mas sencillo que hacer un kill, simplemente con cerrar la ejecucion de netcat (-c) la cosa continuaba "optimamente".
Asi que nada, gracias a los que se tomaron la molestia de leerlo.


« Última modificación: 29 Julio 2008, 00:36 am por Anubis__ » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Imposibilidad de efectuar cálculos aritméticos realmente simples con shellscript
Scripting
H4RR13R 2 2,409 Último mensaje 11 Octubre 2015, 05:40 am
por H4RR13R
Trivial con ShellScript
Scripting
recomx 0 2,334 Último mensaje 15 Mayo 2019, 02:16 am
por recomx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines