Як сказав у своїй відповіді @William, Apple не надає bash 4 через обмеження GPL. Ви можете встановити bash 4+, але також можете зробити це за замовчуванням оболонки (в тому числі для терміналів і iTerm2 ) виконуючи наступне.
Встановіть Bash 4 через Homebrew
Спочатку встановіть нову версію bash. Є різні способи зробити це, я віддаю перевагу Homebrew.
- Установіть Homebrew, як описано на http://brew.sh .
- Встановіть bash
brew install bash
.
Bash 4 тепер доступний на вашій PATH (якщо домашній бункер знаходиться на вашому шляху). Втім, це так ні ще оболонка за умовчанням Ви можете знайти місце розташування за допомогою запуску which bash
. У моєму випадку це в /usr/local/bin/bash
.
Використання Bash 4
Оскільки воно знаходиться на вашій PATH, ви можете розпочати сеанс Bash 4 лише за допомогою bash
або може використовуватися в скриптах за допомогою a Шебанг .
Наприклад, для цього буде використано конкретний приклад bash.
#!/usr/local/bin/bash
...your script...
Це буде використовувати перший bash на PATH.
#!/usr/bin/env bash
...your script...
Ви також можете встановити шлях bash для певних профілів у Terminal / iTerm2, використовуючи кроки, описані в відповіді @ user136952.
Зробити Bash 4 типовим
Як згадувалося вище, після установки Bash 4 все ще не за замовчуванням оболонки. Щоб зробити bash типовим, потрібно виконати ще два кроки.
Спочатку додайте шлях Bash 4 до вашого /etc/shells
файл, так що він є дозволеною оболонкою для входу. Як описано в / etc / shells , цей файл має список допустимих оболонок входу. Після додавання нового шляху bash мій /etc/shells
виглядає так:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/bash
Далі ми використовуємо chsh, щоб зробити його типовою оболонкою. Тому будь-які сеанси для цього користувача будуть використовувати цю оболонку. Докладніше про це можна прочитати в Змініть оболонку в терміналі Mac OS X , але фактична команда дуже проста.
chsh -s /usr/local/bin/bash
Тепер новий bash є нашою оболонкою за замовчуванням. Якщо відкрити термінал або iTerm2 і запустити bash --version
Ви повинні побачити нову версію. Зверніть увагу на "Ліцензію GPLv3 +", тому Apple не поєднує її з macOS.
$ bash --version
GNU bash, version 4.4.12(1)-release (x86_64-apple-darwin16.6.0)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>