38

MacPorts で Bash を 3.2.48 に更新できませんでした。

私はそれをアクティブにしていないようです。

echo $BASH_VERSION
3.2.17(1)-release

どうすれば最新の Bash をアクティブにして、ログイン シェルで取得できるようになりますか?

4

3 に答える 3

75

たとえば、シェルを MacPorts によってインストールされた最新の Bash に変更するには、次のコードを実行します。

chsh -s /opt/local/bin/bash

それがあなたにメッセージを与えるなら、

" non-standard shell"

追加する必要があります

/opt/local/bin/bash

/etc/shells

これ/etc/shellsは単なるテキスト ファイルであるため、root として認証されている場合は直接編集できます。コマンドでプログラムで変更できます

sudo -s
Password:
# echo /opt/local/bin/bash >> /etc/shells

最初の chsh コマンドが失敗した場合、上記のファイルを変更できた場合は、もう一度実行してください。

于 2009-04-26T17:25:49.797 に答える
2

次のシェル スクリプトを使用するだけで、既存の Mac OS X ログイン シェル (デフォルト/bin/bashでは Mac OS X に同梱されています) からログイン シェルを MacPorts に切り替えることができます。/opt/local/bin/bash

#!/opt/local/bin/bash
if [ `grep /opt/local/bin/bash /etc/shells` ]; 
then 
    echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash;     
else 
    echo /opt/local/bin/bash | sudo tee -a /etc/shells; 
    chsh -s /opt/local/bin/bash; 
fi
于 2013-03-15T21:34:32.933 に答える