Ayuda para un noob en los .sh ;(

Iniciado por byendriver, 15 Marzo 2014, 07:10 AM

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

byendriver

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: #!/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 :)

-Myx-

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:

$ bash -x script.sh

Vas a aprender mucho mas de tu script :)