Subtituer le nom d'une variable par son contenu - Shell/Batch - Programmation
Marsh Posté le 21-02-2005 à 14:55:42
je voulais juste vous dire merci tous les 2, ca fait des plombes que je cherche à faire exactement la même chose !!
Merci donc :-) (ca marche!)
Marsh Posté le 21-02-2005 à 16:10:40
merci à toi et à celui qui a posé la question que j'avais en tête!!!
Sans lui tu n'y aurais jamais répondu
Marsh Posté le 21-02-2005 à 16:31:06
ben tiens tant que tu es là, pourrais tu encore m'aider s'il te plait?
Dans mon cas, le résultat de la commande que tu nous as fournie doit me donner un mot de passe, que je souhaite utiliser pour faire un ftp:
ftp -n adresse << !
user $user motdepasse
....
!
Comment faire pour integrer le resultat de cette grande commande dans une autre commande?!!
Marsh Posté le 21-02-2005 à 17:05:47
pour appeler une autre commande, tu peux faire un eval ou mettre la commande enter backstick :
Code :
|
par contre pour le client FTP de base je ne suis pas sûr qu'il soit possible de by-passer le mode interactif, à tester
Marsh Posté le 21-02-2005 à 17:18:15
si on reprend l'exemple de guda, il faudrait que je fasse:
ftp -n adresse << !
user $user `eval echo \$`echo LIVRAISON_$VERSION``
....
!
??
Mais ca ne marche pas...
Et si je veux faire rentrer eval echo \$`echo LIVRAISON_$VERSION` dans une variable je devrais faire:
mot_de_passe=`eval echo \$`echo LIVRAISON_$VERSION`` ??
Ca marche pas non plus!
Marsh Posté le 21-02-2005 à 17:25:47
vérifie en ligne de commande sans faire de script, moi je pense que ca bloque car le mot de passe doit être saisie en mode intéractif
Marsh Posté le 21-02-2005 à 17:50:52
non, ca marche avec le mot de passe directement en ligne de commande sans passer par l'interactif.
En fait, sans parler de ftp, si je fait
mot_de_passe=`eval echo \$`echo LIVRAISON_$VERSION``
puis
echo $mot_de_passe
il gueule: ksh: LIVRAISON_LOT3: not found
alors que j'ai bien déclaré toutes les variables :-(
Marsh Posté le 24-02-2005 à 13:49:47
couak a écrit :
|
Bonjour couak,
c'est totalement inutile de mettre un "echo" entre backquottes. Le shell exécute l'instruction placée entre les backquottes et remet le résultat affiché par l'instruction à la place.
Ce serait comme faire
Code :
|
au lieu de taper directement
Code :
|
Autrement dit, la syntaxe
Code :
|
peut être utilement réduite en
Code :
|
Marsh Posté le 24-02-2005 à 13:54:10
Sve@r a écrit : Bonjour couak,
peut être utilement réduite en
|
effectivement je m'en souviendrai la prochaine fois que je ferais du shell
Marsh Posté le 07-01-2006 à 20:01:21
bon, je me reponds a moi meme... ( cest toujours quand on fini par demander la question qu'on trouve...)
|
Merci moi
Marsh Posté le 14-02-2005 à 16:05:37
Je voudrais faire un truc de ce genre
et que le resultat me renvoi "oui".
Pour etre plus clair, j'ai une chaine et une variable (LIVRAISON_"$VERSION) qui doivent devenir une variable LIVRAISON_LOT3
Comment faire ?