[eside-ghost] Variables en Bash

Malkavian malkavian666 en gmail.com
Vie Nov 10 01:02:09 CET 2006


¡Aupa Jon!:

> ¿Cómo saber si una variable capturada como entrada desde stdin (read
> variable) en Bash es de tipo integer o string?

Pues no se si habrá algo para hacerlo, aunque supongo que sí.

> Creo que en Bash las vars no son tipadas, pero si que hay variación a

Efectivamente no lo son.


> En cambio:
>
> $ var=t
> $ test $var -gt 5
> bash: test: t: se esperaba expresión de tipo entero

Si despues haces     var=7    y repites el test $var... funcionaría, pues 
no son tipadas...

> Un test previo para saber que tipo es y no hacer un error (saltarselo
> por ejemplo)?

En caso de que nadie te de una solución, una cutre-solución puede ser 
hacer algo parecido a lo que has hecho:

var=3
if [ $var -gt 0 ] || [ $var -le 0 ]
	then esInt="si"
	else esInt="no"
fi

O en dos líneas (se podría hacer en una y tal):

var=3
if [ $var -gt 0 ] || [ $var -le 0 ]; then esInt="si"; else esInt="no"; fi

Si quieres hay forma de hacer que no salgan los errores derivados de 
asignar algo que no sea un número a $var en la consola... Por otro lado 
quizás exista algo para detectar esos errores y darte la solución 
también...

-- 
	Agur: Javier Ortega Conde (Malkavian)
------------------------------------------------------------------------
La página de Malkavian: De todo un poco http://malkavian.homelinux.org
Miembro del Grupo de LinUxuarios de Bizkaia (GLUB)     http://glub.biz
Miembro de Eghost, Itsas, Ether, GULA, GLUGI, Guardianes del Túmulo... 
------------------------------------------------------------------------
User error: Replace user and hit any key to continue.


Más información sobre la lista de distribución eside-ghost