Suivi de la partie historique de cette question .
En bashje peux utiliser ${!FOO}pour la double substitution, en zsh ${(P)FOO}. Dans les deux, la vieille école (hack-y) eval \$$FOOfonctionne.
Donc, la chose la plus intelligente et la plus logique pour moi serait la ${${FOO}}, ${${${FOO}}}…substitution double / triple / n. Pourquoi cela ne fonctionne-t-il pas comme prévu?
Deuxièmement: que fait \la evaldéclaration? Je pense que c'est une évasion, rendant quelque chose comme eval \$$$FOOimpossible. Comment faire une substitution triple / n avec celle qui fonctionne dans chaque shell?
l3=l2; eval eval eval echo \\\$\\$\$$l3→53294donc pas exactement modulaire.