El shell de linux: Comando let

Este contenido sólo se encuentra disponible para miembros premium.
Si deseas hacerte premium, envíanos un mail a registro@algodelinux.com y te informaremos.
This Article Has 20 Comments
  1. Anónimo

    Me ha servido tu post. gracias.

  2. Anónimo

    no me funciona m pone let: not found

  3. Anónimo

    No m funciona m pone let: not found
    PORQUEEEEE????
    L tngo q instalar alguna actualizacion
    Tngo Ubuntu 7.10

  4. Esteban M. Navas Martín

    ¿Podrías enseñarme cómo lo has utilizado?

  5. eXp

    Soy principiante con esto de bash y, al ejecutar tu script, me dice:

    script: 10: let: not found
    El contador es 0

    Lo curioso es que cuando uso let directamente en el prompt si que funciona. Puedo hacer:

    root@e-kipo:# let a=10
    root@e-kipo:# let b=5
    root@e-kipo:# let c=$a+$b
    root@e-kipo:# echo $c
    15

    Qué extraño no? uso Ubuntu 8.10 intrepid

  6. Esteban M. Navas

    Puede ser que tengas algún error de sintaxis. El comando let debería funcionarte de igual modo tanto si lo ejecutas en la línea de comandos como si lo ejecutas en un script. Si quieres, mándame tu script y le echo un vistazo.

  7. Jose

    A mi me funciona perfectamente.
    Gracias

  8. Juampi23

    Me pasa exactamente lo mismo que a "eXp", en el terminal, si uso el comando let me funciona, hace las cuentas que necesito, etc…Pero dentro del vim, cuando programo y posteriormente ejecuto el shell script no me funciona, me dice "let: not found", y no hace las cuentas :S…Ni idea la verdad, cualquier ayuda mil gracias

    P.D.: Uso Ubuntu 8.10

  9. joacoo

    a mi me paso lo mismo
    al revisar varias veces me di cuenta
    q habia dejado un espacio d mas
    adelante de la variable
    un error boludo pero suele suceder y mas si estamos aprendiendo

  10. joaco

    a mi me paso lo mismo
    pero luego de revisar varias veces me di cuanta q cometi un error boludo
    dejar un espacio de mas adelant de la variable, suele suceder y mas cuando c esta aprendiendo
    espero q les sirva.

    pd: me queria matar despues de perder tanto tiempo, pero fue comico

  11. joacoo

    a mi me paso lo mismo
    pero luego de revisar varias veces me di cuanta q cometi un error boludo
    dejar un espacio de mas adelant de la variable, suele suceder y mas cuando c esta aprendiendo
    espero q les sirva.

    pd: me queria matar despues de perder tanto tiempo, pero fue comico

  12. Anónimo

    "joacoo"

    a mi me paso lo mismo
    pero luego de revisar varias veces me di cuanta q cometi un error boludo
    dejar un espacio de mas adelant de la variable, suele suceder y mas cuando c esta aprendiendo
    espero q les sirva.

    pd: me queria matar despues de perder tanto tiempo, pero fue comico

  13. Anónimo

    Un script que estaba haciendo, me fallaba en las asignaciones con set y me estaba volviendo loco, se me ocurrio probar con let… vi tu blog y voila!

    Gracias artista!!!!

  14. Anónimo

    Hola. Sé que es antiguo pero no puedo resistir contestar a un anónimo con el error de "let: not found", por si a alguno le sucede lo mismo. En mi máquina si ejecuto:

    sh script.sh

    la orden let me falla. Me dice let:not found

    Sin embargo si ejecutas el script (suponiendo que lo tengas en el directorio actual)

    ./script.sh

    deja de dar dicho fallo. Por si a alguno le sucede igual que pruebe. Saludos.

  15. Esteban M. Navas

    Viendo tu comentario tan detallado, la respuesta es muy sencilla. /bin/sh suele ser un enlace a un shell. Por ejemplo, en debian /bin/sh es un enlace a /bin/dash. Por eso, no te funciona cuando lo ejecutas con:

    sh script.sh

    Y sí cuando le das permisos de ejecución y lo ejecutas con:

    ./script.sh

    Comprueba cuál es tu shell, consultando la variable $SHELL:

    echo $SHELL

    En Debian el shell por defecto es bash, que sí tiene let. También te funcionará sin ningún problema si lo ejecutas así:

    bash script.sh

    Un saludo,

    Esteban M.

  16. gaviota2000

    Me has salvado la vida… Muchas gracias 😉

  17. Paola

    y si quiero hacer un contador que se me reinicie por día?
    Como podría hacerlo?
    Gracias

  18. Esteban M. Navas Martín

    Hola, Paola:

    En mi opinión, si vas a tratar fechas, lo mejor es que te bases en el comando date.

    No sé cuál es el problema real, pero puedes tomar una fecha base, calcular la diferencia con la fecha actual y realizar la acción que quieras cuando el contador llegue a un número determinado.

    #!/bin/bash

    fechainicial="20140120"

    DIFERENCIA=$((( $(date +%s) – $(date –date $fechainicial +%s) )/(60*60*24)))

    echo "Días transcurridos desde $fechainicial: $DIFERENCIA"

  19. Anónimo

    Sufrí igual que algunos pero al final funcionó solo que no supe que estaba mal. 🙁 Gracias.

  20. Juan Jose Pau

    bueno se que es tarde pero de seguro que a alguien mas le servira…
    pasa que cuando ejecuto con sh ejemplo.sh me bota let: not found
    pero cuando ejecuto con source ejemplo.sh si funciona
    ami me funciono..!