Variable et boucle for .. [RESOLU] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 16-10-2008 à 13:25:32
Single quote et double quote.
Pas de quoi
Marsh Posté le 16-10-2008 à 13:31:11
Oui je m'en doutait un peu mais je ne trouve pas la bonne "combinaison" à utiliser !
Marsh Posté le 16-10-2008 à 13:38:05
PWET="Yooplaboom"
echo '$PWET' --> Affichage de $PWET
echo "$PWET" --> Affichage de Yooplaboom
Marsh Posté le 16-10-2008 à 14:44:08
Merci, mais cela ne focntionne pas :
[preappl11i@rexfraappt001 drp]$ echo $APPL_TOP $COMMON_TOP
/preprod/preprodappl /preprod/preprodcomn
[preappl11i@rexfraappt001 drp]$
[preappl11i@rexfraappt001 drp]$ for REP in $APPL_TOP $COMMON_TOP ; do echo $REP '$REP' "$REP" ; done
/preprod/preprodappl $REP /preprod/preprodappl
/preprod/preprodcomn $REP /preprod/preprodcomn
[preappl11i@rexfraappt001 drp]$ for REP in APPL_TOP COMMON_TOP ; do echo $REP '$REP' "$REP" ; done
APPL_TOP $REP APPL_TOP
COMMON_TOP $REP COMMON_TOP
[preappl11i@rexfraappt001 drp]$
Marsh Posté le 16-10-2008 à 14:46:57
tu veux pas mettre des balise "code" ou "fixed" des fois, histoire que ça soit lisible ?
Marsh Posté le 16-10-2008 à 15:02:43
Yep !
preappl11i@rexfraappt001 drp]$ echo $APPL_TOP $COMMON_TOP
/preprod/preprodappl /preprod/preprodcomn |
[preappl11i@rexfraappt001 drp]$
[preappl11i@rexfraappt001 drp]$
[preappl11i@rexfraappt001 drp]$ for REP in $APPL_TOP $COMMON_TOP ; do echo $REP '$REP' "$REP" ; done
/preprod/preprodappl $REP /preprod/preprodappl |
/preprod/preprodcomn $REP /preprod/preprodcomn |
preappl11i@rexfraappt001 drp]$
preappl11i@rexfraappt001 drp]$
[preappl11i@rexfraappt001 drp]$ for REP in APPL_TOP COMMON_TOP ; do echo $REP '$REP' "$REP" ; done
APPL_TOP $REP APPL_TOP |
COMMON_TOP $REP COMMON_TOP |
[preappl11i@rexfraappt001 drp]$
C'est mieux comme ça ?
Marsh Posté le 16-10-2008 à 15:11:32
oui
sinon pour répondre à ta question ... c'est pas possible
à partir du moment ou tu écris
Code :
|
tes variables $toto et $tata sont automatiquement traduites avant que la boucle ne soit lancée et que les valeurs soient affectées à $i
Marsh Posté le 16-10-2008 à 15:20:02
OK merci pour lma réponse.
Et si je pars sur un truc comme ça :
Code :
|
Est ce possible d'afficher le contenu de $toto ou $tata ?
Marsh Posté le 16-10-2008 à 15:21:51
Code :
|
à essayer, sans garantie
Marsh Posté le 16-10-2008 à 15:29:54
Déja testé , il aime pas du tout ... :
line 19: ${$REP}: bad substitution
Marsh Posté le 16-10-2008 à 15:30:50
Déja testé , il aime pas du tout ... :
line 19: ${$REP}: bad substitution
Mais merci quand même
Marsh Posté le 16-10-2008 à 15:31:29
ben sinon y'a la méthode Conan
Code :
|
edit: quoi que, j'ai un doute en fait
edit²: ah sinon, voir avec les fonctions "env" ou "getenv" ...
Marsh Posté le 16-10-2008 à 15:37:35
OK merci je vais regarder ça (eval et get env)
J'update le topic quand cela sera OK !
Marsh Posté le 16-10-2008 à 16:20:11
Ben ... pas mieux !!
eval sert à évaluer une commande je ne vois pas trop à quoi cela va me servir
Marsh Posté le 16-10-2008 à 17:05:12
Exemple :
#!/bin/sh |
Explication : la chaine qui suit le "eval" est evaluée par le shell, qui va remplacer les deux $i par leur valeur. Le eval va évaluer le résultat, c'est à dire par exemple pour la première boucle, la chaine "echo TOTO = $TOTO".
Marsh Posté le 16-10-2008 à 17:14:51
Merci beaucoup !
Ca fonctionne ...
J'ai pas trop bien compris ce que fait concrètement eval, j'y reflechirais à tête reposé ...
Merci encore !
Marsh Posté le 16-10-2008 à 17:25:50
Il evalue l'expression formée par la concaténation de ce que tu lui passe en argument (ici on lui passe un seul argument, qui est une chaine).
Marsh Posté le 17-10-2008 à 15:42:45
En plus clair , eval force le shell à interpreter une chaine de caractère comme une commande :
[preappl11i@rexfraappt001 drp]$ echo Bonjour à tous |
Marsh Posté le 06-11-2008 à 21:25:17
Hop, ma contribution
Code :
|
Marsh Posté le 16-10-2008 à 13:23:37
Bonjour à tous,
Il y a quelque chose que je n'arrive pas à réaliser avec un shell script.Je m'explique.
Je passe comme arguments à une boucle for une série de variable d'environnements qui contiennent des chemins :
[preappl11i@rexfraappt001 drp]$ echo $APPL_TOP
/preprod/preprodappl
[preappl11i@rexfraappt001 drp]$ echo $COMMON_TOP
/preprod/preprodcomn
[preappl11i@rexfraappt001 drp]$
J'aimerais, dans la boucle for afficher le nom de la variable et le contenu.
Si je fais ça, le contenue de la variable s'affcihe
for REP in $APPL_TOP $COMMON_TOP ; do
echo -e " $REP : "
done
si je fais ça, le nom de la variable s'affiche :
for REP in APPL_TOP COMMON_TOP ; do
echo -e "$REP : "
done
La question est : comment réussir à afficher le nom et le contenu des variables dans la même boucle ?
Si quelqu'un à une idée ....
Message édité par Drix75 le 16-10-2008 à 17:15:32