SoloCodigo

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: arielb en Sábado 21 de Octubre de 2006, 17:08

Título: Script Con Funciones
Publicado por: arielb en Sábado 21 de Octubre de 2006, 17:08
Que tal amigos, a ver si me dan una orientacion con, que estoy haciendo mal con script

Código: Text
  1. #/bin/sh
  2.  
  3. cd /home/Juez
  4.  
  5. if ls -L Ejecutar.sh
  6. then
  7.    echo "Existe archivo"
  8.    cat Ejecutar.sh |while read cdIP
  9.    do
  10.       echo $cdIP
  11.       HacerPing $cdIP
  12.    done
  13. else
  14.    echo "no existe"
  15. fi
  16.  
  17. function HacerPing{
  18.    ping $1 -w 1 > prueba.txt
  19. }
  20.  

Mi problema est'a en la ejecucion de la funcion.
Título: Re: Script Con Funciones
Publicado por: su - en Sábado 21 de Octubre de 2006, 18:07
Cita de: "juez"
Que tal amigos, a ver si me dan una orientacion con, que estoy haciendo mal con script

Código: Text
  1. #/bin/sh
  2.  
  3. cd /home/Juez
  4.  
  5. if ls -L Ejecutar.sh
  6. then
  7.    echo "Existe archivo"
  8.    cat Ejecutar.sh |while read cdIP
  9.    do
  10.       echo $cdIP
  11.       HacerPing $cdIP
  12.    done
  13. else
  14.    echo "no existe"
  15. fi
  16.  
  17. function HacerPing{
  18.    ping $1 -w 1 > prueba.txt
  19. }
  20.  

Mi problema est'a en la ejecucion de la funcion.
el problema esta en el if, la estructura lo estas haciendo mal, es:
if [ "ls -L ejecutar.h" ]; then...
aunque aqui es mejor usar -e:
if [ -e "ejecutar-h"]
Título: Re: Script Con Funciones
Publicado por: su - en Domingo 22 de Octubre de 2006, 18:50
Ahhh, si le falta ;; al final al final de la funcion.
Por cierto, ¿La funcion no se llama con un ), es decir HacerPing) parametros?
Código: Text
  1. #/usr/bin/env bash
  2. cd $HOME
  3.  
  4. if [-f "Ejecutar.sh"]
  5. then
  6.   echo "Existe archivo"
  7.   cat Ejecutar.sh |while read cdIP
  8.   do
  9.      echo $cdIP
  10.      HacerPing $cdIP
  11.   done
  12. else
  13.   echo "no existe"
  14. fi
  15.  
  16. function HacerPing {
  17.   ping $1 -w 1 > prueba.txt
  18. }
  19. ;;
  20.  
Bueno mas o menos, si tienes problemas... solo postea.
Título: Re: Script Con Funciones
Publicado por: arielb en Lunes 23 de Octubre de 2006, 23:04
Que tal su gracias por tu ayuda mira de la forma que yo lo tenia hecho me envia este mensaje en la consola cuando lo ejecuto.
De esta forma encuentra el archivo y lo le pasando el ciclo, pero al llamar la funcion es que envia el error.

Citar
Revisar.sh: line 11: HacerPing: command not found
Revisar.sh: line 18: syntax error near unexpected token `ping'
Revisar.sh: line 18: `  ping $1 -w 1 > prueba.txt'

y de la forma que tu propones me sale lo siguiente, y no encuentra el archivo
Citar
Revisar.sh: line 4: [-f: command not found
no existe
Revisar.sh: line 19: syntax error near unexpected token `;;'
Revisar.sh: line 19: `;;'
Título: Re: Script Con Funciones
Publicado por: arielb en Martes 24 de Octubre de 2006, 00:02
Bueno lo coloque de esta manera y ahora si me funciona. gracias

Citar
#/bin/sh
cd $HOME

function HacerPing {
 ping $1 -w 1 > prueba.txt
}

if  ls -L Ejecutar.sh; then
 echo "Existe archivo"
 cat Ejecutar.sh |while read cdIP
 do
    echo $cdIP
    HacerPing $cdIP
 done
else
 echo "no existe"
fi
Título: Re: Script Con Funciones
Publicado por: su - en Martes 24 de Octubre de 2006, 01:05
Hmmm....
Código: Text
  1. #!/usr/bin/env bash
  2. Hacerping () {
  3.   if [ "$1" != "" ]; then
  4.      ping $1 -w 1 > prueba.txt
  5.   fi
  6. }
  7. if [ -f "$HOME/Ejecutar.sh" ]; # o  -x si es ejecutable, no recuerdo si -e es valido
  8.   then
  9.     echo "Existe el archivo"
  10.     cat Ejecutar.sh |while read cdIP
  11.     do
  12.       echo $cdIP
  13.       HacerPing $cdIP
  14.    done
  15. else
  16.   echo "no existe"
  17. fi
  18.  
  19.  
El problema es el espacio entre los "[ ]"