Как поменять терминал на последнюю версию Bash для MacOS

Как поменять терминал на последнюю версию Bash для MacOS

Начиная с macOS Catalina, Apple переключила стандартную оболочку с Bash на Zsh. Кроме того, встроенная версия Bash сильно устарела и на ней могут не работать такие вещи как ассоциативные массивы. Далее в статье мы рассмотрим как обновить и поменять терминал на последнюю версию bash.

Установка последней версии Bash

Вас может удивить, что даже последние версии macOS поставляются с Bash 3.2, датируемым 2007 годом:

/bin/bash --version
# GNU bash, version 3.2.57(1)-release (arm64-apple-darwin22)
# Copyright (C) 2007 Free Software Foundation, Inc.

Это, вероятно, связано с изменением лицензии, произошедшим с Bash 4.0, которое перешло на GPLv3. В любом случае, вы можете установить последнюю версию Bash через Homebrew:

brew install bash
/opt/homebrew/bin/bash --version
# GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin22.1.0)
# Copyright (C) 2022 Free Software Foundation, Inc.
# License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

Теперь у нас есть последняя версия bash.

Изменение терминала по умолчанию на Bash

Теперь вам просто нужно добавить Bash от Homebrew в список разрешенных и установить его как оболочку по умолчанию:

sudo sh -c 'echo /opt/homebrew/bin/bash >> /etc/shells'
chsh -s /opt/homebrew/bin/bash

Если вы откроете новое окно терминала или перезапустите терминал, вы увидите, что ваши изменения вступили в силу:

echo $BASH_VERSION
# 5.2.15(1)-release

Если вы также хотите изменить оболочку по умолчанию для пользователя root, выполните следующее:

sudo chsh -s /usr/local/bin/bash

Теперь, если вы используете команду sudo su, вы также увидите последнюю версию Bash.

Обновление скриптов

Если у вас есть скрипты со строкой shebang, которая ссылается на /bin/bash, они все равно будут использовать устаревшую версию:

#!/bin/bash
echo $BASH_VERSION

Вероятно, вы захотите обновить их, чтобы они указывали следующее вместо этого:

#!/usr/bin/env bash
echo $BASH_VERSION

Отлично, теперь у вас будет использоваться последняя версия Bash везде!


Источник: Change Shell to Latest Bash on macOS


Андрей Писаревский

Автор: Андрей Писаревский 

PHP | WordPress Team Lead. Имею коммерческий опыт в программировании с 2010 года и экспертизу в полном цикле веб разработки: Frontend, Backend, QA, Server administration, управление крупными командами и Enterprise проектами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *