Resultados 1 al 3 de 3

Tema: if bash muerta

  1. #1

    Predeterminado if bash muerta

    Yo quiero un if que me diga si un número es mayor o menor a 1. El caso de igual no se va a dar...


    Hay un if en bash que me está volviendo loca:

    futurama@HP:~$ n=1; divisor=0.9; if [ $divisor -eg $n ] ; then echo "divisor es mayor a 1"; else echo "divisor es menor a 1"; fi
    bash: [: -eg: binary operator expected
    divisor es menor a 1


    Ponga lo que ponga en divisor, siempre me dice lo mismo. He probado con >= y nada... Socorro!!

  2. #2
    El señor de los forillos Avatar de lastMonkey
    Ubicación
    http://localhost:8080
    Mensajes
    4,708

    Predeterminado Re: if bash muerta

    Por ahí le leído que quizás est:
    [ $divisor -eg $n ]
    debería ir
    [[$divisor -eg $n]]
    Te dejo un par de enlaces:

    linuxquestions.org: Binary Operator Expected error in Shell Script

    mywiki.wooledge.org: What is the difference between test, [ and [[ ?

  3. #3

    Predeterminado Re: if bash muerta

    Gracias! ahora funciona para numeros enteros pero aun no para decimales.
    Que no le va bien el . sino la coma

    futurama@HP:~$ n=1; divisor=1,9; if [[ $divisor -ge $n ]] ; then echo "divisor es mayor a 1"; else echo "divisor es menor a 1"; fi
    divisor es mayor a 1

    futurama@HP:~$ n=1; divisor=0,9; if [[ $divisor -ge $n ]] ; then echo "divisor es mayor a 1"; else echo "divisor es menor a 1"; fi
    divisor es mayor a 1


    Pero siempre me da la primera opción de que es mayor.. Como podría hacerlo?
    Última edición por futurama; 03/08/2012 a las 10:45

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •