无法通过MacPorts在Mac中更新我的Bash
我更新了我的Bash到MacPorts的3.2.48失败。
看来我没有积极性,因为我得到了
echo $BASH_VERSION 3.2.17(1)-release
你怎么能使最新的Bash活动 ,以便我得到它的login壳?
运行以下代码,例如将您的shell更改为由MacPorts安装的最新的Bash
chsh -s /opt/local/bin/bash
如果这给你的信息,
“
non-standard shell
”
你将需要添加
/opt/local/bin/bash
至
/etc/shells
请注意, /etc/shells
只是一个文本文件,所以如果您以root身份进行身份validation,则可以直接对其进行编辑。 您可以通过命令以编程方式更改它
sudo -s Password: # echo /opt/local/bin/bash >> /etc/shells
如果您的第一个chsh命令失败,那么现在再运行一次,如果您设法更改上述文件。
我猜它已经安装了,但并没有被用作你的loginshell。
您可以在命令行上使用dscl来更改shell。
在dscl提示符处input以下内容:
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
如果有帮助,我还有另一个dscl在我的博客上使用的例子。
您可以使用以下shell脚本,将您的loginshell从现有的Mac OS Xloginshell(默认情况下为Mac OS X附带的/bin/bash
)切换到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