Vorrei sconsigliare di fare l'installazione Homebrew di bash il comando system-wide bash
o sh
. Comunque dovrebbe andare bene come shell personale.
Homebrew fornisce un'installazione vaniglia di Gnu Bash . Ti verranno perse eventuali aggiunte di Apple alla shell fornite se utilizzi i binari forniti da Apple bash
o sh
o il codice sorgente da opensource.apple.com . Qualsiasi script di shell a livello di sistema operativo fornito da Apple potrebbe fare affidamento su quelle estensioni di Apple e le relative modifiche.
Homebrew installa anche, per impostazione predefinita, una versione 4.3.x di bash:
> brew info bash
bash: stable 4.3.24 (bottled), HEAD
http://www.gnu.org/software/bash/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline ✘
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.
Questa è una versione significativamente diversa dalla versione 3.2.x fornita con OS X 10.9.x. Non è retrocompatibile al 100% con versioni pre 4. Ad esempio estrazione della sottostringa sull'indicizzazione dei parametri posizionali modificata da 3 a 4. Potrebbe rompere il livello di sistema script.
Entrambi questi motivi possono portare a script di sistema non utilizzabili sul tuo Mac se passi alle versioni Homebrew di bash
e sh
per qualcosa di diverso dalla tua shell personale. Puoi rendere la shell personale la shell Homebrew bash
eseguendo:
chsh -s /usr/local/bin/bash
e poi disconnettersi e ricollegarsi. Ciò dovrebbe essere relativamente sicuro per il funzionamento stabile della macchina.
Se il comando chsh
sopra non riesce a dire che /usr/local/bin/bash
non è una shell accettabile devi aggiungerlo all'elenco in /etc/shells
eseguendo:
sudo vim /etc/shells
Dovrebbe essere aggiunto su una nuova riga nel file in questo modo:
> cat /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/zsh
/usr/local/bin/bash