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?
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?
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.
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
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.