Почему выражения подоболочки в ~ / .zshenv не приводят к бесконечному регрессу?

Я понимаю, что ~ / .zshenv получает источник каждый раз, когда запускается экземпляр zsh .

Это означает, что следующая строка ~ / .zshenv приведет к бесконечной регрессии:

(echo "$$ $(date)" >> $HOME/.debug.zshenv)

... потому что (...) представляет подоболочку, и, следовательно, другой источник ~ / .zshenv и т. д. 1

Несмотря на это рассуждение, строка, показанная выше, является безобидный, AFAICT. В частности, $ HOME / .debug.zshenv показывает только одну строку после того, как я запускаю новую оболочку с помощью

% zsh

Очевидно, ~ / .zshenv не получает источник заново при вычислении строки выше. Почему бы и нет?


1 В этом отношении выражение $ (date) также влечет за собой создание подоболочки.

0
19.01.2016, 01:41
0 ответов

Теги

Похожие вопросы