Bonjour,
voici le script que j'étudie et qui fonctionne (script trouvé dans l'abs-guide, et qui illustre l'utilisation de eval)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
**********************
#!/bin/bash
arr0=( 10 11 12 13 14 15 )
arr1=( 20 21 22 23 24 25 )
 
find_member ()
{
eval array_member=\${arr${array_number}[element_number]}
echo Element $array_member
}
 
array_number=1
element_number=5
find_member  # réponse 25
 
exit 0
**********************
Ma question est courte et précise:
je ne comprends pas pourquoi ce script ne fonctionne plus si on remplace la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
eval array_member=\${arr${array_number}[element_number]}
par la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
array_member=${arr${array_number}[element_number]}
Dans ce cas, il y a le message d'erreur suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
${arr${array_number}[element_number]}: bad substitution
C'est certainement tout l'intérêt d'eval, mais je ne le comprends pas justement

Merci d'avance