Czy ustawić domyślną powłokę na bash MacPorts w Mac OS X 10.6.8?

11

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.

hpy
źródło
1
Więc raz złamałeś skorupę i chcesz zobaczyć, jak to zrobić ponownie? Powód which bashpokazuje, ż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.
Alan Shutko

Odpowiedzi:

18

sh --versionjest 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.

  1. sudo port install bash
  2. Dodaj /opt/local/bin/bashdo/etc/shells
  3. chsh -s /opt/local/bin/bash
  4. Otwórz nową kartę i sprawdź echo $BASH_VERSION
Lri
źródło
echo $SHELLwyraźniej wskazuje, która powłoka jest uruchomiona.
Victor Sergienko