Kontynuacja części podstawowej tego pytania .
W bash
mogę użyć ${!FOO}
do podwójnej zamiany, w zsh
${(P)FOO}
. W obu działa stara szkoła (hack-y) eval \$$FOO
.
Najmądrzejszą i najbardziej logiczną rzeczą byłoby dla mnie ${${FOO}}, ${${${FOO}}}…
zastąpienie podwójnym / potrójnym / n. Dlaczego to nie działa zgodnie z oczekiwaniami?
Po drugie: co robi \
w eval
oświadczeniu? Myślę, że to ucieczka, która uniemożliwia coś takiego eval \$$$FOO
. Jak zrobić potrójne / n podstawienie, które działa w każdej powłoce?
l3=l2; eval eval eval echo \\\$\\$\$$l3
→53294
więc nie do końca modułowy.