Unable to update my Bash in Mac by MacPorts

爷,独闯天下 提交于 2019-11-30 06:19:15

问题


I updated unsuccessfully my Bash to 3.2.48 by MacPorts.

It seems that I do not have it active, since I get

echo $BASH_VERSION
3.2.17(1)-release

How can you make the newest Bash active such that I get it for my login shell?


回答1:


Run the following code, for instance to change your shell to the newest Bash installed by MacPorts

chsh -s /opt/local/bin/bash

If that gives you the message,

"non-standard shell"

you will need to add

/opt/local/bin/bash

to

/etc/shells

Note that /etc/shells is just a text file, so you can edit it directly if you authenticate as root. You can programmatically change it by the command

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

If your first chsh command failed, run it now again if you managed to change the above file.




回答2:


I'm guessing it's installed but not being used as your login shell.

You can change the shell using dscl on the command line.

At the dscl prompt type the following:

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

I have another example of dscl use on my blog if it helps.




回答3:


You can switch your login shell, from your existing Mac OS X login shell (by default its /bin/bash shipped with Mac OS X), to MacPorts /opt/local/bin/bash just by using the following shell script:

#!/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


来源:https://stackoverflow.com/questions/791227/unable-to-update-my-bash-in-mac-by-macports

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!