• Domingo 22 de Diciembre de 2024, 08:29

Autor Tema:  Script Con Funciones  (Leído 1950 veces)

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Script Con Funciones
« en: Sábado 21 de Octubre de 2006, 17:08 »
0
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.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Script Con Funciones
« Respuesta #1 en: Sábado 21 de Octubre de 2006, 18:07 »
0
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"]
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Script Con Funciones
« Respuesta #2 en: Domingo 22 de Octubre de 2006, 18:50 »
0
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.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Script Con Funciones
« Respuesta #3 en: Lunes 23 de Octubre de 2006, 23:04 »
0
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: `;;'
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Script Con Funciones
« Respuesta #4 en: Martes 24 de Octubre de 2006, 00:02 »
0
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
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Script Con Funciones
« Respuesta #5 en: Martes 24 de Octubre de 2006, 01:05 »
0
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 "[ ]"
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.