[DUVIDA] Condições [DUVIDA] [RESOLVIDO]

1. [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Pedersini
Pedersini

(usa Debian)

Enviado em 18/07/2020 - 19:49h

Boa noite,

Estou desenvolvendo um script mas estou em duvida das boas praticas em relação ao código, poderiam dar umas dicas para melhora-lo por favor?

O primeiro argumento é referente ao domínio e o segundo argumento a wordlist.

#!/bin/bash

echo "=========> PROCURANDO DIRETORIOS <=========="
echo ""
for palavra_diretorio in $(cat $2)
do
diretorio=$(curl -s -o /dev/null -H "User-Agent: :)" -w "%{http_code}" $1/$palavra_diretorio/)
if [ $diretorio == "200" ]
then
echo "Diretorio encontrado ====> $1/$palavra_diretorio/"
fi
done
echo ""
echo "==========> PROCURANDO ARQUIVOS <=========="
echo ""
for palavra_arquivo in $(cat $2)
do
arquivo=$(curl -s -o /dev/null -H "User-Agent: :)" -w "%{http_code}" $1/$palavra_arquivo)
if [ $arquivo == "200" ]
then
echo "Arquivo encontrado ====> $1/$palavra_arquivo"
fi
done



  


2. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 18/07/2020 - 20:36h


if [ argumento ] ; then
atributos
fi

eu faria assim:

funcao(){
atributos
}

[[ argumento ]] && funcao

agiliza o codigo.

___________________________________
Conhecimento não se Leva para o Túmulo.


3. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 18/07/2020 - 20:37h


queria ajudar melhor mas to pelo celular.

___________________________________
Conhecimento não se Leva para o Túmulo.


4. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 18/07/2020 - 20:39h


identar o código (usar tab), tambem ajuda na organizaçao.

___________________________________
Conhecimento não se Leva para o Túmulo.


5. Re: [DUVIDA] Condições [DUVIDA]

aguamole
aguamole

(usa KUbuntu)

Enviado em 18/07/2020 - 23:07h

#!/usr/bin/env bash

# Variáveis definidas.
diretorio=$(curl -s -o /dev/null -H "User-Agent: :)" -w "%{http_code}" $1/$palavra_diretorio/)
arquivo=$(curl -s -o /dev/null -H "User-Agent: :)" -w "%{http_code}" $1/$palavra_arquivo)

# Faz busca por diretório.
echo -e "\033[32m=========> PROCURANDO DIRETÓRIOS <==========\033[m\n"
for palavra_diretorio in $(cat $2)
do
if [ $diretorio == "200" ]
then
echo "Diretório encontrado ====> $1/$palavra_diretorio/"
fi
done

# Faz busca por arquivos.
echo -e "\n\033[32m==========> PROCURANDO ARQUIVOS <==========\033[m\n"
for palavra_arquivo in $(cat $2)
do
if [ $arquivo == "200" ]
then
echo "Arquivo encontrado ====> $1/$palavra_arquivo"
fi
done

As boas praticas que eu sei são só estas mesmo esses espaços que coloquei é para estruturar o código.
Muitos echo não é bem vindo além de remover alguns deles ainda diminui o código.
Tem que comentar o código para que outra pessoa e você mesmo entenda ele mais facilmente.
Eu colori alguns echo porque fica mais bonito para os olhos.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


6. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Pedersini
Pedersini

(usa Debian)

Enviado em 19/07/2020 - 00:47h

Muito obrigado pessoal, vou pegar as dicas aqui e implementar no codigo, valeu mesmo !!!!


7. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 19/07/2020 - 09:02h

Eu cometi um erro é:
#!/usr/bin/env bash 
Nessa hora eu fiquei confuso ^^

Não é que não possa definir o bash na shebang o que acontece é que em algum sistema o bash pode estar em outro lugar.
Já o "/usr/bin/env" sempre estará neste local e então você define o interpretador a ser usado para o "env" procurar.
É uma boa pratica.

No seu código Diretório esta sem acento.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


8. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 19/07/2020 - 15:05h


aguamole escreveu:

Eu cometi um erro é:
#!/usr/bin/env bash 
Nessa hora eu fiquei confuso ^^

Não é que não possa definir o bash na shebang o que acontece é que em algum sistema o bash pode estar em outro lugar.
Já o "/usr/bin/env" sempre estará neste local e então você define o interpretador a ser usado para o "env" procurar.
É uma boa pratica.

No seu código Diretório esta sem acento.

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


Tá aí uma coisa que eu não uso. Só uma dúvida, pode usar os dois no mesmo script ou isso não cola:

#!/usr/bin/env bash
#!/bin/bash


___________________________________
Conhecimento não se Leva para o Túmulo.


9. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

aguamole
aguamole

(usa KUbuntu)

Enviado em 19/07/2020 - 15:42h

mauricio123 escreveu:
Tá aí uma coisa que eu não uso. Só uma dúvida, pode usar os dois no mesmo script ou isso não cola:

#!/usr/bin/env bash
#!/bin/bash


___________________________________
Conhecimento não se Leva para o Túmulo.


Entenda como funciona.
Abra o terminal e digita $ sh
Depois digita $ /bin/bash
Você vai notar que do interpretador sh foi para o bash porque vc chamo o bash com /bin/bash.
Depois faz a mesmo coisa so que $ /usr/bin/env bash.
Vai acontecer a mesma coisa.

Então para que chamar o bash 2 vezes no mesmo script?
poder fazer ate pode mais vai chamar 2 vezes para que sendo que o bash esta chamando ele próprio?

CPU i5-8400 GTX 750 SofRaid 4xSSD 16GB DDR4 mesmo assim uso Lubuntu.


10. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Mauricio Ferrari
maurixnovatrento

(usa Slackware)

Enviado em 19/07/2020 - 18:00h


Entendi. Então usarei o que estou acostumado a usar. o /bin/bash.

___________________________________
Conhecimento não se Leva para o Túmulo.


11. Re: [DUVIDA] Condições [DUVIDA] [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/07/2020 - 20:25h

Pedersini escreveu:

Muito obrigado pessoal, vou pegar as dicas aqui e implementar no codigo, valeu mesmo !!!!

Boa noite Pedersini.
Se o arquivo "wordlist" é o mesmo para Diretórios e Arquivos,
Use somente um laço....
Sugestão:
#!/bin/bash
echo -e "\n=========> PROCURANDO DIRETÓRIOS e ARQUIVOS <==========\n"
for palavra in $(cat $2);do
stt=$(curl -s -o /dev/null -H "User-Agent: :)" -w "%{http_code}" $1/${palavra}/);
((${stt}==200)) && echo "Diretório/Arquivo encontrado Em: $1 Com Palavra: ${palavra}"
#Ou, "comente" a linha acima e "descomente" a linha abaixo.
#echo "$1:${palavra}:${stt}" >> saida.txt
done

Uma outra opção, conforme mostrado no script acima, é:
Eliminar o condicional/teste, e
direcionar a saída para um arquivo,
Desse modo você tem o "Status" para cada palavra buscada no referido site.....
Exemplo:
echo "$1:${palavra}:${stt}" >> saida.txt
Depois pode "buscar" em saida.txt,
usando o awk, grep ou sed....

É isso....
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts