Le 20/03/2012 09:48, David BERCOT a écrit :
Bonjour, Visiblement, il me manque quelque chose, mais je n'arrive pas à trouver quoi... Je cherche donc à parcourir un tableau dont le nom est fourni au lancement du script. Et là, je n'y arrive pas... Ce serait quelque chose du genre : #!/bin/bash tableau1=(element1 element2 element3) tableau2=(element1 element2 element3) tableau3=(element1 element2 element3) tableau="$1" # Nom du tableau à utiliser for element in "${$tableau[@]}" do echo $element done Et là, bien évidemment, ma syntaxe "${$tableau[@]}" ne lui plaît pas... Auriez-vous une idée pour résoudre ce problème ? Merci d'avance. David.
Bonjour,Déjà, il ne faut pas mettre de $ dans les accolades. Il faut écrire "${tableau[@]}".
Ensuite, tableau est une chaîne de caractère et non pas une référence vers un tableau pré-enregistré. Du coup, ton echo $element va renvoyer ton premier paramètre.
Personnellement, j'écrirai le script de cette manière : #!/bin/bash tableau1=(element1 element2 element3) tableau2=(element1 element2 element3) tableau3=(element1 element2 element3) case $1 in "tableau1") tableau=${tableau1[@]} ;; "tableau2") tableau=${tableau2[@]} ;; "tableau3") tableau=${tableau3[@]} ;; esac for element in ${tableau[@]} do echo $element done Adrien