Như @William đã nói trong câu trả lời của mình, Apple không cung cấp bash 4 do hạn chế GPL. Tuy nhiên, bạn có thể cài đặt bash 4+ và cũng có thể biến nó thành vỏ mặc định của bạn (bao gồm cả Terminal và iTerm2 ) bằng cách thực hiện như sau.
Cài đặt Bash 4 qua Homebrew
Đầu tiên cài đặt phiên bản mới hơn của bash. Có nhiều cách khác nhau để làm điều đó, tôi thích Homebrew hơn.
- Cài đặt Homebrew như được mô tả tại http://brew.sh .
- Cài đặt bash bằng cách sử dụng
brew install bash
.
Bash 4 hiện có sẵn trên PATH của bạn (giả sử thùng Homebrew nằm trên đường của bạn). Tuy nhiên, nó chưa phải là vỏ mặc định của bạn. Bạn có thể tìm thấy nó nằm ở đâu bằng cách chạy which bash
. Trong trường hợp của tôi đó là tại /usr/local/bin/bash
.
Sử dụng Bash 4
Vì nó nằm trên PATH của bạn, bạn có thể bắt đầu phiên Bash 4 chỉ bash
hoặc nó có thể được sử dụng trong các tập lệnh bằng cách sử dụng Shebang .
Ví dụ, điều này sẽ sử dụng một ví dụ bash cụ thể.
#!/usr/local/bin/bash
...your script...
Điều này sẽ sử dụng bash đầu tiên trên PATH.
#!/usr/bin/env bash
...your script...
Bạn cũng có thể đặt đường dẫn bash cho các cấu hình cụ thể trong Terminal / iTerm2 bằng các bước được mô tả trong câu trả lời của @ user136952.
Đặt Bash 4 làm mặc định
Như đã đề cập ở trên, sau khi cài đặt Bash 4 vẫn không phải là shell mặc định. Để làm bash mặc định, bạn cần thực hiện thêm hai bước nữa.
Đầu tiên, thêm đường dẫn Bash 4 vào /etc/shells
tệp của bạn để nó là vỏ đăng nhập được phép. Như được mô tả trong / etc / shells , tệp này có danh sách các shell đăng nhập hợp lệ. Sau khi thêm đường dẫn bash mới, giao diện của tôi /etc/shells
như sau:
# 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
Tiếp theo chúng tôi sử dụng chsh để biến nó thành shell mặc định của bạn. Vì vậy, bất kỳ phiên nào cho người dùng đó sẽ sử dụng shell đó. Bạn có thể đọc thêm về điều này trong Change the Shell trong Mac OS X Terminal , nhưng lệnh thực tế rất đơn giản.
chsh -s /usr/local/bin/bash
Bây giờ bash mới là vỏ đăng nhập mặc định của chúng tôi. Nếu bạn mở Terminal hoặc iTerm2 và chạy, bash --version
bạn sẽ thấy phiên bản mới. Lưu ý "Giấy phép GPLv3 +", đó là lý do tại sao Apple không gói nó với 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>