W odpowiedzi na moje poprzednie pytanie ponownie zainstalowałem MacPorts i chcę ponownie wypróbować nowszą wersję bash.
Zainstalowałem najnowszą wersję bash za pośrednictwem MacPorts na moim systemie Mac OS X 10.6.8, ale kiedy rozpoczynam sesję Terminal.app, polecenie „sh --version” pokazało, że nadal używam starej wersji bash 3.2.48. Dzieje się tak nawet wtedy, gdy „which bash” wskazuje na nowszą wersję 4.2.37 zainstalowaną przez MacPorts.
Próbowałem zmienić preferencje Terminal.app, aby używać nowego basha jako domyślnego, zmieniłem / etc / shells i użyłem polecenia chsh, aby określić bash MacPorts jako domyślny. Żadna z tych metod nie była jednak skuteczna. czego mi brakuje? Dziękuję Ci bardzo.
which bash
pokazuje, że nowsza powłoka jest uruchomiona, ale starsza jest uruchamiana przez ścieżkę bezwzględną (/ bin / bash) i nie jest zgodna ze ścieżką. To i tak nie miałoby znaczenia, ponieważ ścieżka nie jest ustawiona tak, aby obejmowała MacPorts, dopóki .bashrc nie zostanie uruchomiony.Odpowiedzi:
sh --version
jest prawdopodobnie taki sam jak/bin/sh --version
. Jeśli bieżąca powłoka to bash, możesz zobaczyć jej wersję za pomocąecho $BASH_VERSION
. Jeśli zmienisz domyślną powłokę logowania przy pomocy chsh, możesz zachować domyślną powłokę Terminala jako powłokę logowania.sudo port install bash
/opt/local/bin/bash
do/etc/shells
chsh -s /opt/local/bin/bash
echo $BASH_VERSION
źródło
echo $SHELL
wyraźniej wskazuje, która powłoka jest uruchomiona.