Слідкуйте за основною частиною цього питання .
У bashя можу використовувати ${!FOO}для подвійної заміни, в zsh ${(P)FOO}. В обох працює стара школа (хак-у) eval \$$FOO.
Отже, найрозумнішим і найбільш логічним для мене було б ${${FOO}}, ${${${FOO}}}…подвійне / потрійне / п заміщення. Чому це не працює, як очікувалося?
Друге: Що робить \у evalвисловлюванні? Я вважаю, що це втеча, що робить щось подібне eval \$$$FOOнеможливим. Як зробити потрійну / п заміну на ту, яка працює в кожній оболонці?
l3=l2; eval eval eval echo \\\$\\$\$$l3→53294так не зовсім модульно.