Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: byendriver en 15 Marzo 2014, 07:10 am



Título: Ayuda para un noob en los .sh ;(
Publicado por: byendriver en 15 Marzo 2014, 07:10 am
Hola buenas noches gente :) Pues les comento que he empezado a programar en debian y necesito una idea de como es la sintaxis correcta para programar .sh :( porque ni idea, sólo me estoy basando en ejercicios basicos.

Lo que necesito es hacer un script que busque los puertos correspondientes segun el usuario necesite, esto es lo que llevo:
Código:
#!/bin/bash

host=$1
startport=$2
stopport=$3



  while :

    do

    echo "1. Capturar IP o nombre de dominio"

    echo "2. Rango inicial de puerto"

    echo "3. Rango final de puerto"

    echo "4. Continuar"

    echo -n "Seleccione una opcion: "

    read opcion

    case $opcion in

    1) read $1  ;;

    2) read $2;;

    3) read $3;;

    4) pingcheck;;

    *) echo "$opc ERROR. opción invalida";

pingcheck
portcheck


   
    echo "Presiona una tecla para continuar...";

    read foo;;

    esac

    done




function pingcheck
{
    ping=`ping -c 1 $host | grep bytes | wc -l`
    if [ "$ping" -gt 1 ]; then
        echo "$host is up";
    else
        echo "$host is down quitting";
        exit
    fi
}



function portcheck
{
    for ((counter=$startport; counter<=$stopport; counter++))do
        (echo > /dev/tcp/$host/$counter) > /dev/null 2>&1 && echo "$counter open"
    done
}
pingcheck
portcheck
 

Ahora, como ves es un script basico :( lo que no sé es como llamar a las funciones correctamente y si los valores de las variables si estan en modo global para que las funciones puedan trabajar con ellas :(

Muchas gracias de antemano :)


Título: Re: Ayuda para un noob en los .sh ;(
Publicado por: -Myx- en 15 Marzo 2014, 07:27 am
en bash tenes que definir primero a las funciones y despues llamarlas. NO podes llamarlas antes de declararlas.

SI las variables por defecto son globales

Dos cosas mas, usa identacion (espacios o tabs) ayudan bastante a encontrar errores y fijate de probar la opcion de debug con bash, llamando el codigo asi:

Código:
$ bash -x script.sh

Vas a aprender mucho mas de tu script :)