[eside-ghost] Variables en Bash

halls frikihalls en gmail.com
Vie Nov 10 01:52:54 CET 2006


wop!

pues siguiendo con la logica de txipi y el bc, se me ha ocurrido este
script... y esta vez no es guarro XD

-----------------------------8<----------------------------------------------------
#!/bin/bash

# primero hacemos una funcion ke nos diga si
# es un numero o no, y devuelva lo correspondiente
function es_numero()
{
  TEMP=$(echo $1 | bc);

  if [ "$TEMP" = "0" ]; then
    if [ "$1" = "0" ]; then
      return 1
    else
      return 0
    fi
  else
    return 1
  fi
}

# como prueba ponemos esto:
# si es un string, devolvera un 0, por lo tanto bash lo considerara como
# ke la ejecucion de "es_numero $1" no tiene errores y ejecutara la
siguiente,
# mostrando el mensaje. Como en conjunto "no ha habido errores", es decir
# no ha habido resultado de operacion distinta de 0, el ultimo mensaje
# no se muestra.
#
# De lo contrario, al ser string, la funcion devuelve como ke ha habido un

# error en la ejecucion, por tanto no se ejecuta el AND, pero si el OR...

{ es_numero $1 && echo "Tu VAR es un string."; } || echo "Tu VAR es un
numero."

---------------------------------------------8<--------------------------------------------------

espero ke te sirva ;-)

alejop!


PD: ya me puedo ir a la cama trankilo XD



2006/11/10, txipi <txipi a bildua sindominio.net>:
>
> Aupa!
>
> On Fri, 10 Nov 2006 01:10:05 +0100
> txipi <txipi a bildua sindominio.net> wrote:
>
> > > > Hazte un programa que reciba un string y devuelva 0 si es un
> > > > número  :-D
> > > Esteeee.... ¿Cómo? ¿Y como discrimino que lo que recibe es un
> > > string?
> > No, para nada. El comando test no está hecho en bash ;-P
>
> Por cierto, usando bc, puedes convertir cualquier variable en un numero:
>
> var="hola"
>
> echo $var | bc
> 0
>
> var=77171717
>
> echo $var | bc
> 77171717
>
> Por ahí va un camino a una solución elegante ;-)
>
> --
> Agur,
>   txipi
>
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost a bildua deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
>
-------------- hurrengo zatia --------------
Erantsitako HTML dokumentu bat ezabatu egin da...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20061110/49d74de2/attachment.htm


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