On Mon, 26 Jan 2015, Eugene Berdnikov wrote: EB>> AREAS="yunka kultuk muya udokan" EB>> for i in $AREAS EB>> do EB>> echo area $i processed... EB>> done EB>> EB>> Отгадайте с трех раз, что она покажет в zsh? EB>
EB> В sh-моде все имеющиеся под моей рукой борновские шеллы (bash, EB> dash, zsh) обрабатывают эту конструкцию совершенно одинаково. EB> Более того, я уверен, что невозможно найти ни одного EB> современного шелла, который бы в sh-моде выполнил этот код EB> как-то иначе. Я охотно верю, что авторы zsh физически вполне способны реализовать стандартное поведение. Более того, я знаю, что отмена интерпретации подставляемого значения переменной была их сознательным решением, которым они гордятся. К делу это не имеет никакого отношения. Очевидная разница между bash и zsh здесь в том, что bash в режиме совместимости - отключает расширения, дополнительные возможности, каждым из которых программист может пользоваться или не пользоваться по своему усмотрению. Отключение это делается ради редких и случайных совпадений, скажем, переменных старинного shell-скрипта с новыми ключевыми словами bash-а. zsh же в режиме совместимости - запускает интерпретатор _другого_ (хоть и похожего) языка с _другим_ синтаксисом. Причем различия в синтаксисе касаются самых базовых конструкций языка. EB> EB> Вы, скорее всего, не знаете что такое sh-мода, когда и как она EB> включается (в том чфисле автоматически), и почему в современных EB> шеллах в интерактивном режиме она по умолчанию выключена. При EB> этом свой код выдаёте за эталон. Когда мне нужен интерпретатор чистого shell-а , то zsh в режиме совместимости среди претендентов на эту функцию не первый и даже не десятый.