Follow-up zum Hintergrundteil dieser Frage .
In bash
kann ich verwende ${!FOO}
für doppelte Substitution, in zsh
${(P)FOO}
. In beiden Fällen eval \$$FOO
funktioniert die alte Schule (Hack-y) .
Das Klügste und Logischste für mich wäre also ${${FOO}}, ${${${FOO}}}…
eine doppelte / dreifache / n-Substitution. Warum funktioniert das nicht wie erwartet?
Zweitens: Was macht der \
in der eval
Aussage? Ich denke, es ist eine Flucht, die so etwas wie eval \$$$FOO
unmöglich macht. Wie macht man eine Triple / N-Substitution mit der, die in jeder Shell funktioniert?
l3=l2; eval eval eval echo \\\$\\$\$$l3
→53294
also nicht genau modular.