Retourner aux forums || Retourner au forum Programmation.autre

Programmation.autre : BASH : fonction 'let'

Posté par Pierre Alain B. () le 28 août 2007
0
Petit comportement que je m'explique mal sur une XUbuntu 6.06 :
- en console sous Bash (3.2.17)
J'obtiens bien un nombre aléatoire

- si j'exécute dans la même console, sans modif de l'environnement, le script suivant :
#!/bin/bash
let "essai=$RANDOM"
echo $essai


J'obtiens : script.sh line 2 : let : not found
et bien sûr ça ne marche pas !

Sur les sites que j'ai consulté, le problème provenait d'un mauvais choix du shell avec une erreur dans la première ligne du script... Mais là ?

Si quelqu'un a une idée, il gagnerait toute ma gratitude.

Bonne soirée
PAB

> Lire le message (7 commentaires, moyenne: 1,9).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Erreur

Posté par Pierre Alain B. () le 28/08/2007 à 20:22. (lien). Évalué à 1.

Evidemment, je me suis planté ! Pour le premier tiret, il faut lire :

- en console sous Bash (3.2.17)
si je tape
$ let "essai=$RANDOM"
$ echo $essai
J'obtiens bien un nombre aléatoire.

  • [^]Re: Erreur

    Posté par NeoX () le 28/08/2007 à 20:51. (lien). Évalué à 2.

    que ferait let ?

    car d'apres http://pwet.fr/man/linux/commandes/bash


    essai=$RANDOM
    echo $essai


    devrait le faire.

    --
    Apprendre par les autres, c'est bien.
    Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
  • [^]Re: Erreur

    Posté par xusnet () le 28/08/2007 à 21:28. (lien). Évalué à 1.

    fait set | grep RANDOM

    ou encore let "essai=$RANDOM"; echo $essai

    cela revient au meme.

    regarde ce que c'est RANDOM par la commande man random


    man est mon meilleur ami

    • [^]Re: Erreur

      Posté par NeoX () le 28/08/2007 à 22:02. (lien). Évalué à 1.


      neox@amd64-full-linux:~$ let "essai=$RANDOM";echo $essai
      13697

      neox@amd64-full-linux:~$ set | grep RANDOM
      RANDOM=13697

      neox@amd64-full-linux:~$ essai=$RANDOM;echo $essai
      4270

      neox@amd64-full-linux:~$ set | grep RANDOM
      RANDOM=4270

      neox@amd64-full-linux:~$ bash --version
      GNU bash, version 3.2.13(1)-release (i486-pc-linux-gnu)
      Copyright © 2005 Free Software Foundation, Inc.
      neox@amd64-full-linux:~$



      je ne vois pas vraiment la difference entre avec et sans le let

      --
      Apprendre par les autres, c'est bien.
      Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
      • [^]pour les subsitutions ?

        Posté par Phig () le 29/08/2007 à 12:01. (lien). Évalué à 4.

        Un exemple d'utilisation de let :

        phi@loulou:~$ VAR=NOM
        phi@loulou:~$ echo $VAR
        NOM
        phi@loulou:~$ $VAR=3
        bash: NOM=3: command not found
        phi@loulou:~$ let $VAR=3
        phi@loulou:~$ echo $NOM
        3

        Je ne prétends pas que ce soit le plus intelligent, mais je me souviens de m'en être servi un jour ...

        • [^]Re: pour les subsitutions ?

          Posté par NeoX () le 29/08/2007 à 12:12. (lien). Évalué à 1.

          Je comprend mieux, meme si je ne vois pas l'interet.

          merci Phig pour l'explication.

          --
          Apprendre par les autres, c'est bien.
          Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
          • [^]Re: pour les subsitutions ?

            Posté par Obsidian () le 29/08/2007 à 12:53. (lien). Évalué à 3.

            "Let" permet d'une manière générale d'ordonner l'affectation d'une variable dans tous les cas où la forme raccourcie est ambigüe.

            En principe, le shell développe les variables et procède à leur affection pendant la même étape, avant évaluation de l'expression ainsi formée. "let" permet ici la réinterprétation d'une expression déjà construite.

            Dans le cas présent, ça permet par exemple de passer le nom de la variable à affecter dans les paramètres d'un script.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.autre