Parce que le shell (langage très simpliste) n'est pas cablé pour piger ça.
T'as le droit d'écrire PAR2=machin mais t'as pas le droit d'écrire PAR$i=machin. Faut de nouvau passer par eval => voir message de N_Bah
En fait, en bon habitué du C que tu es, ce que tu cherches à faire est de recréer la notion de pointeur...
Avec les quottes inverses faut doubler le backslash car il y a un niveau de plus d'interprétation...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PAR1=Hello i=1 test "`eval echo \\$PAR$i`" = "Hello" && echo ok
Partager