Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: FAKEz en 22 Marzo 2012, 05:53 am



Título: Se desaparece la consola!!
Publicado por: FAKEz en 22 Marzo 2012, 05:53 am
MOD: Aviso, Usa el botón "Insertar código", y ponle un título describiendo el lenguaje en tu post.  :P

El codigo es el siguiente ,lo ejecuto y no me pide ninguna variable , se abre y se cierra la consola en segundos..

Código
  1. #!/usr/bin/bash
  2. if [ $# -lt 2 ]
  3. then
  4. echo $0 Numero Numero2
  5. exit 1
  6. fi
  7. calculo=`expr $1 + $2`
  8. echo $calculo
  9. exit 0

Que estoy haciendo mal?muchas gracias.


Título: Re: Se desaparece la consola!!
Publicado por: Jirp96 en 22 Marzo 2012, 12:43 pm
Hola!
Ahora no estoy cerca de una maquina con gnu/linux, pero creo que se cual es el problema =P

En tu codigo solo compruebas si se le pasan menos de dos argumentos(aunque nunca los usas)
Luego, imprimes 2 variables que nunca creaste ni le asignaste valor(Numero & Numero2)* y luego sumas los dos primeros parametros($1 $2)

*Antes del
Código
  1. echo $0 Numero Numero2
podrías poner
Código
  1. read -p "Introduce Numero: " Numero
  2. read -p "Introduce Numero2: " Numero2
  3.  

Si no quieres que se cierre la terminal podrías o sacar el "exit 0" o agregar un read antes...

Saludos!


Título: Re: Se desaparece la consola!!
Publicado por: Eleкtro en 22 Marzo 2012, 15:09 pm
Si no quieres que se cierre la terminal podrías o sacar el "exit 0" o agregar un read antes...

No soy ningún entendido sobre Bash, Pero supongo que el comando sleep también te serviría además de lo que te dijo Jirp96: http://ss64.com/bash/sleep.html

Salu2


Título: Re: Se desaparece la consola!!
Publicado por: Runex en 22 Marzo 2012, 21:01 pm
MOD: Aviso, Usa el botón "Insertar código", y ponle un título describiendo el lenguaje en tu post.  :P

El codigo es el siguiente ,lo ejecuto y no me pide ninguna variable , se abre y se cierra la consola en segundos..

Código
  1. #!/usr/bin/bash
  2. if [ $# -lt 2 ]
  3. then
  4. echo $0 Numero Numero2
  5. exit 1
  6. fi
  7. calculo=`expr $1 + $2`
  8. echo $calculo
  9. exit 0

Que estoy haciendo mal?muchas gracias.

Prueba a cambiar la cabecera y a implementar sleep como ha dicho Elektro, respecto a lo de que no te pide ninguna variable, es porque debes usar read, si no, el programa no sabe que debe recibir informacion, el código quedaría así:

Código
  1. #!/bin/bash
  2. echo 'Ingresa un Valor'
  3. read #
  4. if [ $# -lt 2 ]
  5. then
  6. echo $0 Numero Numero2
  7. sleep 5
  8. exit 0
  9. fi
  10. calculo=`expr $1 + $2`
  11. echo $calculo
  12. sleep 5
  13. exit 0

Lo he ejecutado pero vamos, no tiene ninguna salida importante, ¿Cual es su objetivo? :)

Un saludo :)