Suivi de la partie historique de cette question .
En bash
je peux utiliser ${!FOO}
pour la double substitution, en zsh
${(P)FOO}
. Dans les deux, la vieille école (hack-y) eval \$$FOO
fonctionne.
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 eval
déclaration? Je pense que c'est une évasion, rendant quelque chose comme eval \$$$FOO
impossible. Comment faire une substitution triple / n avec celle qui fonctionne dans chaque shell?
l3=l2; eval eval eval echo \\\$\\$\$$l3
→53294
donc pas exactement modulaire.