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 :)
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 :)