Foros del Web » Administración de Sistemas » Unix / Linux »

problem con READ en pequeño bash script

Estas en el tema de problem con READ en pequeño bash script en el foro de Unix / Linux en Foros del Web. Yo otra vez con mis scriptcillos :p, requiriendo su ayuda... (a proposito, saben de algun foro de bash scripting ?) Como ven abajo, estoy filtrando ...
  #1 (permalink)  
Antiguo 21/03/2006, 20:34
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 9 meses
Puntos: 0
Pregunta problem con READ en pequeño bash script

Yo otra vez con mis scriptcillos :p, requiriendo su ayuda... (a proposito, saben de algun foro de bash scripting ?)

Como ven abajo, estoy filtrando las posibles respuestas de la persona que ejecuta el script (el -z es por si no ingresan ningun valor que se guarda en la variable en el primer caso $SRVIP), y si la persona se equivoca doy una advertencia, por ej para el ingreso de IP: echo "Debe ingresar una IP destino.", pero si la persona no ejecuta nada, sale ese mensaje, y hasta ahi, bien, pero luego no se como regresar nuevamente para arriba del codigo a la linea donde se le pregunta por la IP, porque la pregunta una vez, da la advertencia, pero luego sigue corriendo el resto de las funciones que poseo más abajo (que no pegué aquí).. No se si me entendieron.. en fin, gracias.

Código:
echo "Traspasando información al server destino..."
read -p "Ingrese la IP del destino: " SRVIP
if [ -z $SRVIP ]; then
    echo "Debe ingresar una IP destino."
else
    read -p "Ingrese el puerto ssh del destino: " SRVPORT
    if [ -z $SRVPORT ]; then
        echo "Debe ingresar un puerto ssh destino."
    else
        if [ -lt 1]; then
            echo "Debe ingresar un puerto mayor a 0 -cero-"
    else
           if [ -gt 65000 ]; then
               echo "Debe ingresar un puerto menor a 65000"
           else
function transf {
echo "Tiene 60 segundos para abrir acceso en el servidor destino."
bla 
bla
bla
bla
---
pd: porque no hay subforos de bash, awk o perl ?
  #2 (permalink)  
Antiguo 21/03/2006, 21:59
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Hacelo con while:

Código:
SRVIP=""
while [ "$SRVIP" = "" ]
do
    read -p "Ingrese la IP del destino: " SRVIP
done
Saludos.
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 21/03/2006, 22:27
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 9 meses
Puntos: 0
Gracias Ale, voy a probar y luego comento como me fue con el resto de los ifs que tendre que cambiar a while.. ;)

PD: al resto: nuevamente pregunto, porque no hay subforos de bash scripting, awk, perl u otros lenguajes comunes para crear scripts ? conocen algun foro dedicado al bash scripting & awk ?
  #4 (permalink)  
Antiguo 22/03/2006, 20:35
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 5 meses
Puntos: 29
Bueno creo que aun no es necesario poner un foro o subforo para ello pero si crece la demanda de inquitudes pod´iamos colocar un subforo de scripting.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 29/03/2006, 23:48
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 9 meses
Puntos: 0
Mil gracias Ale!!!, tu idea me dio la solucion.. aunque luego no sabía como comprobar si un numero era menor o igual que tal usando While, ya que siempre lo he hecho con If, pero buscando en la red otros ejemplos salió, aca esta como:

Código:
SRVIP=""
while [ "$SRVIP" = "" ]
do
    read -p "Ingrese la IP del destino: " SRVIP
    if [ -z $SRVIP ]; then
    echo "Debe ingresar una IP destino."
fi
done
SRVPORT=""
while [ "$SRVPORT" = "" ]
do
    read -p "Ingrese el puerto: " SRVPORT
    if [ -z $SRVPORT ]; then
        echo "Debe ingresar un puerto ssh destino."
    else
         while (( "$SRVPORT" < "1" ))
         do
            echo "Debe ingresar un puerto mayor a 0 -cero-"
            read -p "Ingrese el puerto: " SRVPORT
         done
         while (( "$SRVPORT" > "65000" ))
         do
            echo "Debe ingresar un puerto menor a 65000"
            read -p "Ingrese el puerto: " SRVPORT
         done
    fi
done
Y Koveart, siempre veo que no hay mucha "demanda" como dices de soluciones a scripts (excepto yo y mis dudas ), pero creo que también es porque mucha gente lo desconoce, si se planteara un subforo de scripting bajo el foro BSD/Linux y se introducieran unas FAQs creo que los mismos usuarios se verían interesados por aprender sobre bash scripting, awk, etc. Tal vez este equivocado pero creo que es algo fundamental si vas a aprender el manejo de sistemas Linux.

--

Algun alma piadosa que sepa como evaluar si la IP ingresada es la correcta ?? (que puede ser cualquiera dado el server destino) digo, dados rangos posibles, los puntos entre cada cifra, etc.. no se puede realizar algo así no?

Saludos!!!

Última edición por Sh4ka; 30/03/2006 a las 00:04
  #6 (permalink)  
Antiguo 24/05/2006, 06:01
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 10 meses
Puntos: 29
Qué es lo que quieres?, que verifique la ip con una existente o que sea un modelo IPv4 (o IPv6 , no sé cómo quieres), de 4 bytes separados por puntos?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:03.