While com looping mesmo apos comando break! [RESOLVIDO]

1. While com looping mesmo apos comando break! [RESOLVIDO]

Pedro H COsta
pedrohitman47

(usa Kali)

Enviado em 16/07/2022 - 23:07h

Criei um script de analise HTML através de uma URL que busca no código fonte novas URLs e seus respectivos IPs, porém estou com um problema no while na hora que pergunto ao usuário se ele deseja fazer uma nova analise pela terceira vez, quando o usuário clica não ao inves de fechar o script ao digitar a letra 'n', é feita a analise da url anterior. Para ficar mais claro vou dar um exemplo:
./parsingHTML.sh businesscorp.com.br
(analise é feita)
Nova Analise? y/n
y
Qual a URL?
sptrans.com.br
(analise é feita)
Nova Analise? y/n
n (neste caso era para o script ser fechado)
./parsingHTML.sh businesscorp.com.br ( porém ele volta para a analise da url anterior)


Meu codigo:
#!/bin/bash

while true; do
if [ "$1" == "" ]
then
echo "PARSING HTML"
echo "Modo de uso: $0 URL "
echo "Exemplo: $0 business.com.br "
break
else
echo -e "\033[1;32m=====================================================================================\033>
echo -e "\033[1;33m Analisando a URL: \033[1;31m $1 \033[0m \>
echo -e "\033[1;32m=====================================================================================\033>
wget $1 2> /dev/null
grep href index.html | cut -d "/" -f 3 | grep "\." | cut -d '"' -f 1 | grep -v "<li" >> lista
for end in $(cat lista);
do host $end | grep "has address" | sed 's/has address/-> /';
done
rm lista
rm index.html
echo -e "\033[1;32m Nova Analise?\033[1;33m y/n \033[0m \033[0m"
read resp
if [ $resp == "n" ]
then
break
else
echo -e "\033[1;32m Qual a URL?\033[0m"
read url
$0 $url
fi
fi
done


Se alguém puder me ajudar a revolver esse problema eu agradeço muito!


  


2. Re: While com looping mesmo apos comando break!

Eduardo Solano
proxlu

(usa Outra)

Enviado em 17/07/2022 - 00:16h

Olá, tudo bom?

Basta retirar seu script do while, removendo a primeira e ultima linhas, pois essa parte do script..
echo -e "\033[1;32m Qual a URL?\033[0m"
read url
$0 $url

..está iniciando um segundo loop, e o break só está fechando o loop do while.
E substitua todos os "break" por "exit" também, já que break é um comando do while.

abraço!



3. Re: While com looping mesmo apos comando break! [RESOLVIDO]

Pedro H COsta
pedrohitman47

(usa Kali)

Enviado em 17/07/2022 - 21:14h


Proxlu escreveu:

Olá, tudo bom?

Basta retirar seu script do while, removendo a primeira e ultima linhas, pois essa parte do script..
echo -e "\033[1;32m Qual a URL?\033[0m"
read url
$0 $url

..está iniciando um segundo loop, e o break só está fechando o loop do while.
E substitua todos os "break" por "exit" também, já que break é um comando do while.

abraço!


Cara era isso mesmo, o meu erro foi não ter percebido que o $0 $url estava iniciando um novo looping, dessa forma tornando desnecessário o while, muito obrigado já estava a um tempão buscando a solução kkkk Abraço








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts