Rechercher : dans
Par :

[SHELL] Afficher une variable ??!!

Dernière réponse le 8 aoû 2007 à 10:23:10 magicwill, le 6 aoû 2007 à 15:35:22 
 Signaler ce message aux modérateurs

Bonjour,

Voici mon code:

for i in 1 2 3 4 5 6 7 8
do
eval test$i=ttttt
done

for j in 1 2 3 4 5 6 7 8
do
echo $(test$j)
done


Le probleme est que je ne sais pas appeler ma variable... si je fais echo $test1 ou echo $test2...ca marche...mais pas ce code là..et je sais pas quelle syntaxe je dois mettre...

Merci pour votre aide.
Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [SHELL] Afficher une variable ??!! » dans :
[Bash] La variable d'environnement PATH Voir La variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[Shell] Tester une variable numérique Voir Tester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...

1

lami20j, le 6 aoû 2007 à 15:40:28

Salut,

for j in 1 2 3 4 5 6 7 8
do
  echo $j
done

lami20j

Répondre à lami20j

2

magicwill, le 6 aoû 2007 à 15:43:53

Nan, ce n'est pas ca...

Je veux afficher la valeur de test1, test2, test3, test4, test5, test6, test7, test8...
En gros avoir:
ttttt
ttttt
ttttt
ttttt
ttttt
ttttt
ttttt
ttttt

8 fois...Bon, dans mon cas, il ne s'agit pas de ttttt, mais bon, il faut deja que j'arrive a parcourir en affichant $test1, $test2, etc... et j'y arrive pas...

Merci quand meme.

Répondre à magicwill

3

JoloKossovar, le 6 aoû 2007 à 16:09:13

Salut ^^
tu fais :

for j in 1 2 3 4 5 6 7 8
do
echo ${test[$j]}
done

ou test est en fait un tableau ^^

Répondre à JoloKossovar

4

magicwill, le 6 aoû 2007 à 16:40:58

Merci pour ta reponse...

Mais je ne peux pas utiliser de tableaux, car il s'agit d'une valeur comme 12816 que j'ai...et je ne peux pas créer test[12816] = coucou car il y a une erreur subscript out of range...
Je dois donc arriver a faire en sorte que test soient une variable et non un tableau...

Ma question demeure...

Merci quand meme.

Répondre à magicwill

5

JoloKossovar, le 6 aoû 2007 à 16:52:40

Ben tu ne dois pas avoir de out of range normalement tu dois surement depasser l index de ton tableau car il n y a pas de raison ... 13000 c pas grd chose pour un tableau a priori...

De toute facon, il n'y a pas de liste, donc le tableau est ton seul ami pour ce que tu veux faire.

Répondre à JoloKossovar

6

lami20j, le 6 aoû 2007 à 18:36:48

#!/bin/bash
test1='a'
test2='aEE'
test3='azz'
test4='azzz'
test5='arrrr'
test6='attt'
test7='rzera'
test8='azeyr'
test9='afhfh'
test10='asdf'
for i in $(seq 10)
do
 eval echo "test=\$test$i"
done
lami20j

Répondre à lami20j

7

 magicwill, le 8 aoû 2007 à 10:23:10

Effectivement ta solution marche lami20j...
Merci beaucoup pour ton aide...!

J'ai voulu mettre ca dans un test...genre if [ `eval ...` = a ]..mais bon, ca marche pas...
Au final, j'ai trouvé une solution bien barbare à l'écriture...mais bon...

Voici ce que j'ai:

if [ $(eval echo $`echo test$j`) -eq 2 ]


Avec ça, ça marche...
Si vous avez plus simple!! lol...

Je met comme résolu!
Merci à vous!

Répondre à magicwill
Collection CommentÇaMarche.net