MacPortsでBashを3.2.48に更新できませんでした。
私はそれをアクティブにしていないようです
echo $BASH_VERSION
3.2.17(1)-release
最新のBashをアクティブにするにはどうすればよいですかログインシェル用に取得できるようにしますか?
次のコードを実行します。たとえば、シェルを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コマンドが失敗した場合、上記のファイルを変更できた場合は、今すぐ実行してください。
ログインシェルは、既存の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
インストールされていると思いますが、ログインシェルとしては使用されていません。
コマンドラインでdsclを使用してシェルを変更できます。
Dsclプロンプトで、次のように入力します。
list Local/Default/Users
read Local/Default/Users/<your username here>
change Local/Default/Users/<your username here> UserShell /bin/bash /opt/local/bin/bash
私の blog でdsclを使用する別の例があります。