Assignement de valeurs dans un tableau dynamiquement
Résolu/Fermé
romegonic
Messages postés
28
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
17 avril 2014
-
14 janv. 2013 à 13:05
romegonic Messages postés 28 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 17 avril 2014 - 15 janv. 2013 à 10:15
romegonic Messages postés 28 Date d'inscription lundi 26 juillet 2010 Statut Membre Dernière intervention 17 avril 2014 - 15 janv. 2013 à 10:15
A voir également:
- Assignement de valeurs dans un tableau dynamiquement
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Comment faire un tableau - Guide
- Trier un tableau excel - Guide
- Tableau de combinaison loto 5/90 - Forum Excel
4 réponses
Utilisateur anonyme
14 janv. 2013 à 14:19
14 janv. 2013 à 14:19
salut,
'eval' ne devrait pas être nécessaire pour faire fonctionner ton code.
En plus, c'est toxique, mieux vaut ne pas l'utiliser.
Et 'ls' est inutile, c'est le shell qui réalise le développement des chemins.
Si tu ne veux récupérer que les répertoires finit le chemin par un slash
'eval' ne devrait pas être nécessaire pour faire fonctionner ton code.
En plus, c'est toxique, mieux vaut ne pas l'utiliser.
Et 'ls' est inutile, c'est le shell qui réalise le développement des chemins.
Si tu ne veux récupérer que les répertoires finit le chemin par un slash
$ mkdir unRepertoire $ touch unFichier $ echo ./*/ $ ./unRepertoire/
romegonic
Messages postés
28
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
17 avril 2014
Modifié par romegonic le 14/01/2013 à 14:49
Modifié par romegonic le 14/01/2013 à 14:49
Merci pour la réponse.
Pour être plus clair, je vérifie l'existence de plusieurs répertoires, et dans chacun d'entre eux, il se peut qu'il y ait également 2-3 sous répertoires, qui correspondent donc tous au critère initial.
Le but étant de stocker tous ces "chemins à analyser" dans un tableau, dès lors se pose à moi le problème d'un ls -d chemin, qui retourne plusieurs répertoires car on va stocker dans une case du tableau un truc comme "chemin_1 chemin_2 chemin_3" alors qu'on voudrait que chemin_1 aille par exemple dans tableau[7], chemin_2 dans tableau[8] etc ...
Le but est donc d'éclater "chemin_1 chemin_2 chemin_3", sans utliser un cut ou un awk, car on ne sait pas à la base combien de chemins correspondront à la demande (ls -d)
Le eval du code linux ci-dessus permettait de dispatcher en ce sens les chemins trouvés, dans les cases du tableau.
Dans mon cas précis, sans utiliser eval ni ls, comme tu le conseilles :
directory='echo /usr/was70_portal/profiles/*/config/cells/*Cell*'
Je recupère :
# echo $dirtoto
/usr/was70_portal/profiles/eulxrbfrUatNodeProf03/config/cells/ehlr08frUatCell04 /usr/was70_portal/profiles/eulxrbfrUatNodeProf04/config/cells/ehlr08frUatCell05
Et ce que je veux c'est être capable de dispatcher les N chemins trouvés (ici 2 en l'occurence), chacun dans une case d'un tableau.
Pour être plus clair, je vérifie l'existence de plusieurs répertoires, et dans chacun d'entre eux, il se peut qu'il y ait également 2-3 sous répertoires, qui correspondent donc tous au critère initial.
Le but étant de stocker tous ces "chemins à analyser" dans un tableau, dès lors se pose à moi le problème d'un ls -d chemin, qui retourne plusieurs répertoires car on va stocker dans une case du tableau un truc comme "chemin_1 chemin_2 chemin_3" alors qu'on voudrait que chemin_1 aille par exemple dans tableau[7], chemin_2 dans tableau[8] etc ...
Le but est donc d'éclater "chemin_1 chemin_2 chemin_3", sans utliser un cut ou un awk, car on ne sait pas à la base combien de chemins correspondront à la demande (ls -d)
Le eval du code linux ci-dessus permettait de dispatcher en ce sens les chemins trouvés, dans les cases du tableau.
Dans mon cas précis, sans utiliser eval ni ls, comme tu le conseilles :
directory='echo /usr/was70_portal/profiles/*/config/cells/*Cell*'
Je recupère :
# echo $dirtoto
/usr/was70_portal/profiles/eulxrbfrUatNodeProf03/config/cells/ehlr08frUatCell04 /usr/was70_portal/profiles/eulxrbfrUatNodeProf04/config/cells/ehlr08frUatCell05
Et ce que je veux c'est être capable de dispatcher les N chemins trouvés (ici 2 en l'occurence), chacun dans une case d'un tableau.
Utilisateur anonyme
14 janv. 2013 à 14:55
14 janv. 2013 à 14:55
Ça ira bien mieux si tu n'utilises ni 'ls', ni 'eval'.
Et pense à positionner l'option 'nullglob' sur 'on' avec shopt.
Encore une fois pour être sûr que tu m'entendes
Ça ira bien mieux si tu n'utilises ni 'ls', ni 'eval'.
for chemin in "$listPaths[@]}" do # $chemin est un répertoire ? chemin=/usr/$chemin test -d "$chemin" && printf '%s\n' $chemin/profiles/*/config/cells/*Cell*/nodes doneau lieu du 'printf', tu pourrais utiliser une autre boucle 'for' pour ajouter chaque répertoire trouvé à un tableau.
Et pense à positionner l'option 'nullglob' sur 'on' avec shopt.
Encore une fois pour être sûr que tu m'entendes
Ça ira bien mieux si tu n'utilises ni 'ls', ni 'eval'.
romegonic
Messages postés
28
Date d'inscription
lundi 26 juillet 2010
Statut
Membre
Dernière intervention
17 avril 2014
15 janv. 2013 à 10:15
15 janv. 2013 à 10:15
Merci pour ton retour, heureusement tu ne m'a pas encore engueulé pour avoir utilisé une structure de données réputée lourde, le tableau :-)
Le sujet peut être cloturé.
Le sujet peut être cloturé.