Enviado em 29/05/2006 - 14:26h
Olá amigos!!
Tenho um problema c\ um vetor não dimensionado num script Bash que verifica serviços vulneráveis em hosts c\ nmap.
No teste condicional recebo a resposta: muitos argumentos.
Acredito que seja erro de sintaxe e não da lógica.
Segue código:
P=$(cat IP); # arquivo IP contém endereços IP à serem scaneados
for i in $P;
do
cd $i; # vai p\ diretório previamente criado de nome igual ao IP do host
declare -a vt=$(cat IP_$i); # define, para cada IP, um vetor que terá suas portas ativas
n=0; # inicializa o índice do vetor que representa cada porta
if [ ${vt[$n]} == 21/tcp ]; # verifica se elemento combina c\ padrão 21/tcp
then {ping -c 3 $i > ping; n++}; # se sim dá ping e armazena em arquivo, no mesmo bloco
elif [ ${vt[$n]} == 53/udp ]; # incrementa índice
then {ping -c 3 $i >> ping; n++};
else echo "Nada" >> ping;
cd ..; # sai do diretório referente ao IP
fi
done
-bash: [: too many arguments # saida repetida 4 vezes
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
Alguma dica?
Abraço à todos!
Tenho um problema c\ um vetor não dimensionado num script Bash que verifica serviços vulneráveis em hosts c\ nmap.
No teste condicional recebo a resposta: muitos argumentos.
Acredito que seja erro de sintaxe e não da lógica.
Segue código:
P=$(cat IP); # arquivo IP contém endereços IP à serem scaneados
for i in $P;
do
cd $i; # vai p\ diretório previamente criado de nome igual ao IP do host
declare -a vt=$(cat IP_$i); # define, para cada IP, um vetor que terá suas portas ativas
n=0; # inicializa o índice do vetor que representa cada porta
if [ ${vt[$n]} == 21/tcp ]; # verifica se elemento combina c\ padrão 21/tcp
then {ping -c 3 $i > ping; n++}; # se sim dá ping e armazena em arquivo, no mesmo bloco
elif [ ${vt[$n]} == 53/udp ]; # incrementa índice
then {ping -c 3 $i >> ping; n++};
else echo "Nada" >> ping;
cd ..; # sai do diretório referente ao IP
fi
done
-bash: [: too many arguments # saida repetida 4 vezes
-bash: [: too many arguments
-bash: [: too many arguments
-bash: [: too many arguments
Alguma dica?
Abraço à todos!