Почему в OS X есть bash v3.2.57?

OS X поставляется с версией bash 3.2.57 вместо версии bash 4.3.39, которая указана GNU как текущая стабильная версия bash .

Есть ли способ обновить bash на Mac OS X?

Ответы (1)

Обратите внимание на исходный вопрос, почему Apple поставила старую версию bash, а затем спросила, как обновить ее. Это ответ на оригинал. Если вопрос только в последнем, то это дубликат

Вы должны спросить Apple, почему. Однако я хотел бы отметить, что bash теперь распространяется под лицензией GPLv3, а 3.2.57 — последняя версия, выпущенная под лицензией GPL2.

Поскольку bash находится в /bin, вы не должны заменять его напрямую, так как Apple может обновить или изменить его в любое время, а теперь с SIP его также сложнее изменить. Также скрипты в других местах могут зависеть от этой версии

Однако вы можете добавить bash из GNU или из менеджера пакетов, такого как Macports или Homebrew. Затем вы можете изменить профиль Terminal.app, чтобы запустить эту оболочку, а не bash

Macports это

sudo port install bash

Домашнее пиво

brew install bash

По состоянию на 06.14.16 стабильная версия bash — 4.3.42, и обновления обычно быстро приходят через обе системы портов.

Или вы можете изменить свою оболочку на другую, которую поставляет Apple, например, zsh, которая является более мощной, чем bash (версия до даты выпуска El Capitan), или ksh, которая является последней. (или tcsh, который является оболочкой C, но также достаточно обновлен)

Хороший ответ! Очень хорошее объяснение. Как я могу перейти на zsh? Есть ли где-нибудь хороший мануал по этой оболочке? Большое спасибо!
Стоит отметить, что ksh и tcsh — довольно старые оболочки с очень небольшим числом поклонников. Для тех, кто хочет альтернативу bash, zsh и fish более современны и довольно часто рекомендуются. zsh — это оболочка по умолчанию в macOS, начиная с Catalina в 2019 году. См. этот график тенденций переполнения стека для популярности bash, zsh и ksh — у других нет тегов.