Problème de variable comme nom de tableau
Seb
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je dois réaliser un code sur une liste de tableau en ksh.
Je cherche ensuite à un moment à afficher le tableau don le nom est stocké dans la variable "nom".
La ligne de commande est la suivante :
echo "le tableau résultat est: ${${nom}[*]}"
Or ceci me renvoie l'erreur suivante :
./bin/decoup_tab.ksh[136]: : bad substitution
Quelqu'un sait comment traiter un tableau dont le nom est une variable?
Merci d'avance pour votre aide.
je dois réaliser un code sur une liste de tableau en ksh.
Je cherche ensuite à un moment à afficher le tableau don le nom est stocké dans la variable "nom".
La ligne de commande est la suivante :
echo "le tableau résultat est: ${${nom}[*]}"
Or ceci me renvoie l'erreur suivante :
./bin/decoup_tab.ksh[136]: : bad substitution
Quelqu'un sait comment traiter un tableau dont le nom est une variable?
Merci d'avance pour votre aide.
A voir également:
- Problème de variable comme nom de tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Tableau de combinaison loto 5/90 - Forum Excel
3 réponses
Salut,
Et comment est déclaré ton tableau ?
Peut être qu'avec ton code en entier (ou du moins un bout subséquent), on y verrait plus clair ;-(
Et comment est déclaré ton tableau ?
Peut être qu'avec ton code en entier (ou du moins un bout subséquent), on y verrait plus clair ;-(
Salut,
Voila une solution en Bash, en ksh je sais pas ce que ça donne :
Voila une solution en Bash, en ksh je sais pas ce que ça donne :
#!/bin/bash
traderidera=( machin truc chose )
nom='traderidera'
t0=${nom}[*]
echo "le tableau résultat est: ${!t0}"
hello
et comme ça
et comme ça
NOM_TAB=GROUPE_00
echo $NOM_TAB
nom=tab_${NOM_TAB}
echo $nom
set -A ${!nom} ELEMENT1 ELEMENT2
echo "le tableau resultat est : ${nom[*]}"
résultat
+ NOM_TAB=GROUPE_00
+ echo GROUPE_00
GROUPE_00
+ nom=tab_GROUPE_00
+ echo tab_GROUPE_00
tab_GROUPE_00
+ set -A nom ELEMENT1 ELEMENT2
+ echo 'le tableau resultat est : ELEMENT1 ELEMENT2'
le tableau resultat est : ELEMENT1 ELEMENT2
Hello dubcek,
je viens de faire le test mais la réponse ne correspond pas à la tienne :'(
je ne pense pas avoir fait d'erreur dans le code ;)
#!/usr/bin/ksh -x
NOM_TAB=GROUPE_00
echo $NOM_TAB
nom=tab_${NOM_TAB}
echo $nom
set -A ${!nom} ELEMENT1 ELEMENT2
echo "le tableau resultat est : ${nom[*]}"
+ NOM_TAB=GROUPE_00
+ echo GROUPE_00
GROUPE_00
+ nom=tab_GROUPE_00
+ echo tab_GROUPE_00
tab_GROUPE_00
./test.ksh[7]: : bad substitution
je viens de faire le test mais la réponse ne correspond pas à la tienne :'(
je ne pense pas avoir fait d'erreur dans le code ;)
#!/usr/bin/ksh -x
NOM_TAB=GROUPE_00
echo $NOM_TAB
nom=tab_${NOM_TAB}
echo $nom
set -A ${!nom} ELEMENT1 ELEMENT2
echo "le tableau resultat est : ${nom[*]}"
+ NOM_TAB=GROUPE_00
+ echo GROUPE_00
GROUPE_00
+ nom=tab_GROUPE_00
+ echo tab_GROUPE_00
tab_GROUPE_00
./test.ksh[7]: : bad substitution
dubcek
Je viens de faire le test sur la machine à disposition et ça ne fonctionne pas :
./t.sh
+ a=11
+ nameref b=a
./t.sh[4]: nameref: not found
+ echo
./t.sh[6]: : bad substitution
J'ai fais le test sur une autre machine possédant une autre souche et là, oh miracle ça marche. Cela semble donc venir de la souche qui est incompatible, je vais donc demander une nouvelle souche :D
Je viens de faire le test sur la machine à disposition et ça ne fonctionne pas :
./t.sh
+ a=11
+ nameref b=a
./t.sh[4]: nameref: not found
+ echo
./t.sh[6]: : bad substitution
J'ai fais le test sur une autre machine possédant une autre souche et là, oh miracle ça marche. Cela semble donc venir de la souche qui est incompatible, je vais donc demander une nouvelle souche :D
c'est moins un problème de code que d'algo;
et plus précisément, d'adaptation de l'algo aux capacités du langage choisi.
En l'occurrence, le shell ne peut pas faire ça.
voici plus de détails sur le code. J'ai fait un extrait de la partie qui nous interesse (normalement cette partie est intégré dans un while qui change la variable "NOM_TAB" et les éléments:
#!/usr/bin/ksh -x
NOM_TAB=GROUPE_00
echo $NOM_TAB
nom=tab_${NOM_TAB}
echo $nom
set -A ${nom} ELEMENT1 ELEMENT2
echo "le tableau resultat est : ${${nom}[*]}"
Voici le résultat :
+ NOM_TAB=GROUPE_00
+ echo GROUPE_00
GROUPE_00
+ nom=tab_GROUPE_00
+ echo tab_GROUPE_00
tab_GROUPE_00
+ set -A tab_GROUPE_00 ELEMENT1 ELEMENT2
./test.ksh[8]: : bad substitution
Merci d'avance pour votre aide