Domanda

ho aggiornato il mio successo Bash al 3.2.48 da MacPorts.

Sembra che io non ce l'ho attiva, dal momento che ho

echo $BASH_VERSION
3.2.17(1)-release

Come si può fare la nuova Bash attiva in modo tale che ricevo per il mio shell di login?

È stato utile?

Soluzione

Eseguire il seguente codice, ad esempio per cambiare la shell Bash alla nuova installato da MacPorts

chsh -s /opt/local/bin/bash

Se che ti dà il messaggio,

  

"non-standard shell"

è necessario aggiungere

/opt/local/bin/bash

a

/etc/shells

Si noti che /etc/shells è solo un file di testo, in modo da poter modificare direttamente se l'autenticazione come utente root. A livello di codice può cambiare con il comando

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

Se il primo comando chsh fallito, eseguirlo ora di nuovo se sei riuscito a modificare il file di cui sopra.

Altri suggerimenti

Sto indovinando che è installato ma non viene utilizzato come shell di login.

È possibile modificare la shell utilizzando dscl sulla riga di comando.

Al prompt dscl il seguente:

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

Ho un altro esempio di utilizzo dscl sul mio blog se aiuta.

È possibile attivare la shell di login, dalla shell di Mac OS X login esistente (per default il suo /bin/bash fornito con Mac OS X), per MacPorts /opt/local/bin/bash semplicemente utilizzando il seguente script di shell:

#!/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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top