[SOLUCIONADO] error sintactico cerca del elemento "else"

Iniciado por gr0ny, Agosto 30, 2021, 01:41:27 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 30, 2021, 01:41:27 PM Ultima modificación: Septiembre 11, 2021, 04:53:51 PM por AXCESS
Buenos dias, espero todos esten bien.
Quisiera saber si por favor me podian ayudar con este error:

./portscan.sh: línea 11: error sintáctico cerca del elemento inesperado `else'
./portscan.sh: línea 11: `else'


No se que es lo que estoy haciendo mal, ya lo revise varias veces y no veo el error, el codigo es el siguiente:

Código: bash
#!/bin/bash
#!./portscan.sh
if [ $1 ]
        ip_address=$1
        for port in $( seq 1 65535 ); do
        timeout 1 bash -c "echo ' ' > /dev/tcp/$ip_address/$port" 2>/dev/null && echo " [*] Port $port - OPEN" &
        done; wait
else
    echo -e "\n [*] Uso: ./portscan.sh <ip_address>\n"
    exit 1
fi


Muchas gracias.

Agosto 30, 2021, 06:58:54 PM #1 Ultima modificación: Agosto 30, 2021, 07:09:44 PM por DtxdF
Te falta el then en el if. Ejemplo:

Código: bash
if command
then
# foo
else
# bar
fi


A veces se coloca directamente el then separándolo del if con punto y coma, simplemente porque para muchos puede ser más fácil de leer. Aunque es de índole personal.

Te recomiendo:

*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Específicamente: Flow-Control Constructs (if, while, for, case)

Tal vez te preguntes, qué es [. No es más que un comando, y al if lo que le interesa es la salida. Ese comando, que es el mismo que el comando test, retorna un número diferente a cero adrede, dependiendo de la condición.

El correspondiente manual del comando test, [:

*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF