Unable to update my Bash in Mac by MacPorts

前端 未结 3 696
-上瘾入骨i
-上瘾入骨i 2020-12-13 02:28

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


        
相关标签:
3条回答
  • 2020-12-13 02:34

    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.

    0 讨论(0)
  • 2020-12-13 02:40

    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
    
    0 讨论(0)
  • 2020-12-13 02:46

    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.

    0 讨论(0)
提交回复
热议问题