SoloCodigo

Sistemas Operativos => GNU/Linux => Mensaje iniciado por: arielb en Viernes 2 de Marzo de 2007, 20:16

Título: Obtener Tipo De Variable
Publicado por: arielb en Viernes 2 de Marzo de 2007, 20:16
Que tal amigos, tengo una consulta.
utilizando el interprete con esta linea "#!/bin/sh", se podra obtener el tipo de una variable? osea saber si la variable es de tipo numerico, entero.

resulta que estoy tomando una variable pero el contenido que esa variable apana puede variar de entero a numerico  "1" --- "1.0"
ya que las comparaciones varian depende el tipo
si es numerico seria
Código: Text
  1. if test "$var" -eq "1.0"
  2.  
si es entero seria
Código: Text
  1. if "$var" -eq "1"
  2.  
Título: Re: Obtener Tipo De Variable
Publicado por: su - en Viernes 2 de Marzo de 2007, 21:08
Hmmm.... Bash no soporta decimales, tienes que usar bc.

Ademas, eso de test no hace falta... seria mejor

Código: Text
  1. if [ "$entero" -gt 0 and "$entero" -lt 5 ]; then
  2.   echo "$entero es mayor a 0 y menor a 5";
  3. fi
  4.  
Título: Re: Obtener Tipo De Variable
Publicado por: arielb en Viernes 2 de Marzo de 2007, 21:48
Bueno la forma que lo solucione es utilizando un df -a y siempre obtengo un valor entero.

Bueno con lo que dice que el test no era necesario creo que si lo era ya que el test te permite hacer comparaciones numericas lo estaba haciendo de esta forma
Código: Text
  1. if test [ "$var" -eq "1.5"]
  2.  

el problema venia cuando el resultado era entero por lo tanto tuve que cambiar de -h a -a
Título: Re: Obtener Tipo De Variable
Publicado por: su - en Viernes 2 de Marzo de 2007, 23:19
Pues si, pero de la otra forma que tenias no se puede usar decimales.

Resulta que -eq y todo eso es heredado de test y por eso dije que no era necesario  ;)

Solo que test es usado (mas que todo) para chequear tipos de archivo (inodos, dispositivos, fechas, bloques, characteres...)

dc es lo mas viable y se nota cuando usas let.

Pero si ya lo arreglaste... que mas da.  :P
Título: Re: Obtener Tipo De Variable
Publicado por: arielb en Viernes 2 de Marzo de 2007, 23:47
ok, su aparte de solucionar un problema tambien es aprender y comprender las cosas para que no sean mecanicas :smartass:  ,  asi que te agradezco tus respuestas. aparte de que no sabia que eran heredados de test.  

 :D
Título: Re: Obtener Tipo De Variable
Publicado por: su - en Sábado 3 de Marzo de 2007, 00:52
No hay problema, recuerda que hay mas de una manera de hacer las cosas, lo dificil es saber cual es la mejor aunque en este caso todas dos estan bien. (bc o sin bc)

Si quieres hacer calculos como Pi y valores similares si es mejor que uses bc (fuera de eso te haria las cosas mas facil)