views:

339

answers:

2

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?

+5  A: 

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 change its permissions. Otherwise, you can edit it too 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.

Nicholas Riley
How can you add /opt/local/bin/bash to /etc/shells?
Masi
See the revised response.
Nicholas Riley
+1  A: 

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.

segy