Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1692 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Tableau contenant des variables - Script bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableau contenant des variables - Script bash

n°1309955
pachoulcs
Posté le 17-04-2012 à 21:06:32  profilanswer
 

 
Bonjour,
 
Je travaille sur un script bash ou il est question de deux types tableaux:
- 1 premier type qui fait référence à des valeurs c'est à dire RENNES et PARIS dans mon cas (voir code source)
- 1 autre type qui fait référence au premier type de tableau et qui fait référence aux tableaux RENNES1 et PARIS1.
 
Ce que je veux, c'est de pouvoir récupérer des informations du tableau RENNES1 en utilisant que le tableau ListeBSC; par exemple connaitre la taille de la variable RENNES1 à partir de ListeBSC ou vouloir récupérer la première valeur de RENNES1 en faisant comme dans un langage comme le java une sorte de ListeBSC[0][0].
 
 
Concrètement c'est de vouloir utiliser les valeurs de ListeBSC comme des références à des variables qui contiennent d'autres types de valeurs.
 
 
Voici le script bash qui permet de declarer les différents tableaux.

Code :
  1. #/bin/bash
  2. RENNES1 = (2.4.5.1.11 2.5.5.1.12)
  3. PARIS1      = (2.5.5.1.12 2.6.5.1.13 2.5.5.1.16)
  4. ListeBSC = (RENNES1 PARIS1)


 
 
Je vous remercie d'avance

mood
Publicité
Posté le 17-04-2012 à 21:06:32  profilanswer
 

n°1323667
Profil sup​primé
Posté le 03-11-2012 à 11:55:22  answer
 

Bonjour, j ne sais pas si ça va répondre à ton problème, mais voici "une solution"
 

Code :
  1. #!/bin/bash
  2. RENNES1 = (2.4.5.1.11 2.5.5.1.12)
  3. PARIS1      = (2.5.5.1.12 2.6.5.1.13 2.5.5.1.16)
  4. ListeBSC = (${RENNES1},${PARIS1})
  5.  
  6. # afficher tous les éléments de RENNES1
  7. echo ${ListeBSC[0][*]}

n°1323672
Profil sup​primé
Posté le 03-11-2012 à 12:26:06  answer
 

salut,
 
attention! déterrrage de 6 mois !
 
ah, ben, ça risque, en effet, pas de répondre au problème!
une solution ? mais en quel langage?
 
quand on n'est pas sûr, on fait des tests avant de poster, et quand on ne sait pas ... on ne sait pas!

n°1323678
Profil sup​primé
Posté le 03-11-2012 à 12:40:30  answer
 


C'est comme le fromage, c'est écrit dessus.
 
Et ben si tu sais pas, tu sais pas, mais ça c'est testé et vérifié par mes soins.
 
A bon entendeur, salut.  [:cricrou92]

n°1323680
Profil sup​primé
Posté le 03-11-2012 à 12:58:16  answer
 


 
Arf, autant pour moi, quelque soit la valeur du paramètre en place de '*' ça affiche le tableau entier.
J'avais pas fait gaffe.
Désolé, je cherche.

n°1323686
Profil sup​primé
Posté le 03-11-2012 à 14:47:57  answer
 

Je ne sais pas si cette "solution" peu convenir mais j'ai cherché, et j'ai trouvé ceci :

Code :
  1. #!/bin/bash                                                                    
  2. RENNES1=(2 4 5 1 11 2 5 5 1 12)
  3. PARIS1=(2 5 5 1 12 2 6 5 1 13 2 5 5 1 16)
  4.  
  5. # On place les deux tableau dans un troisième tableau
  6. ListeBSC[0]=${RENNES1[*]}
  7. ListeBSC[1]=${PARIS1[*]}
  8.  
  9. # afficher le 2ieme éléments de RENNES1                                        
  10. # On récupère d abord le tableau duquel on souhaite un élément.
  11. effective=(${ListeBSC[0]})
  12.  
  13. # Enfin On effiche l élément désiré.
  14. echo ${effective[1]}

n°1323692
Profil sup​primé
Posté le 03-11-2012 à 16:23:23  answer
 

Si les éléments d'un tableau sont constitués de plusiers mots, alors ta solution ne représentera pas correctement les données.
 
Il faut dire que ce que veut faire pachoulcs n'est pas possible en shell (bash, ou ksh).
 
On peut jouer avec leur capacité à gérer les tableaux associatifs, mais les tableaux multidimensionnels ne sont pas implémentés.
 
Il vaut mieux, si c'est indispensable, utiliser un langage qui peut les utiliser : perl, python ?

n°1323700
Profil sup​primé
Posté le 03-11-2012 à 17:01:35  answer
 

Je cherche parce que je suis sur un doc là....
 

Citation :

$ cat arraymanip.sh
#! /bin/bash
Unix[0]='Debian'
Unix[1]='Red hat'
Unix[2]='Ubuntu'
Unix[3]='Suse'
 
echo ${Unix[1]}
 
$./arraymanip.sh
Red hat


 
certainement pas un faux :
 
Sources : http://www.thegeekstuff.com/2010/0 [...] -tutorial/
Oups, c'est mon code qui marche pas, zut, je vois pas la nuance syntaxique.


Message édité par Profil supprimé le 03-11-2012 à 17:04:20
n°1323702
Profil sup​primé
Posté le 03-11-2012 à 17:13:46  answer
 

Citation :

je vois pas la nuance syntaxique.


qu'est-ce que tu veux dire ?
 
remplace les nombres par des mots

Code :
  1. RENNES1=( foo 'bar baz' )
  2. PARIS1=( foo1 'bar1 baz1' )

et essaye d'afficher le deuxième élément de l'un des tableaux à l'aide de ton script.
 
regarde aussi ce post


Message édité par Profil supprimé le 03-11-2012 à 17:15:09
n°1323707
Profil sup​primé
Posté le 03-11-2012 à 17:39:38  answer
 

Je me demande s'il est possible de protéger soit l'espace soit les quote dans les chaînes, c'est tout.


Message édité par Profil supprimé le 03-11-2012 à 17:39:51
mood
Publicité
Posté le 03-11-2012 à 17:39:38  profilanswer
 

n°1323720
Profil sup​primé
Posté le 03-11-2012 à 18:55:21  answer
 

non.

n°1323721
Profil sup​primé
Posté le 03-11-2012 à 18:59:27  answer
 

Merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Tableau contenant des variables - Script bash

 

Sujets relatifs
Lancement script au démarrage + anti crash[POSTFIX] Rediriger Mailer-Daemon vers un script php
[Résolu] Tableau de bord du bas problème Ubuntu 10.04Cron et script
Problème avec tar dans un scriptRécupérer ses variables environmts de son user (.chrsc) avec FTP
Script shell et affichage "bufferisé"[BASH] Problème de traitement sur boucle FOR
[résolu][BASH]commande for foireuse ?Aide en bash
Plus de sujets relatifs à : Tableau contenant des variables - Script bash


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR