Retourner aux forums || Retourner au forum Programmation.autre
Programmation.autre : BASH : fonction 'let'
Posté par Pierre Alain B. () le 28 août 2007- 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).
Erreur
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



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.