我通过MacPorts将我的Bash更新为3.2.48失败。
似乎我没有活动,因为我得到了
echo $BASH_VERSION
3.2.17(1)-release
如何让最新的Bash活跃,以便我为登录shell获取它?
答案 0 :(得分:74)
运行以下代码,例如将shell更改为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命令失败,如果您设法更改了上述文件,请立即再次运行它。
答案 1 :(得分:2)
我猜它已安装但未被用作登录shell。
您可以在命令行上使用dscl更改shell。
在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使用示例。
答案 2 :(得分:2)
您可以使用以下shell脚本将登录shell从现有的Mac OS X登录shell(默认为Mac OS X附带的/bin/bash
)切换到MacPorts /opt/local/bin/bash
: / p>
#!/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