2009-04-26 11 views

cevap

72

örneği MacPorts

chsh -s /opt/local/bin/bash 

o size mesaj verirse tarafından yüklenen yeni Bash için kabuk değiştirme, aşağıdaki kodu çalıştırın

" non-standard shell "

Eğer

eklemeniz gerekir

to

/etc/shells 

Not: /etc/shells sadece bir metin dosyasıdır, böylece kök olarak kimlik doğrulaması yaparsanız, doğrudan düzenleyebilirsiniz. Eğer ilk chsh komutu başarısız olursa programlı,

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

emriyle bunu değiştirmek Yukarıdaki dosyayı değiştirmek başardı tekrar şimdi çalıştırabilirsiniz.

+0

Bağlantı noktası uygulamasını çalıştırırken sorunlarla karşılaşırsanız, bash profillerinizi ayrıca güncellemeniz gerekebilir. Daha fazla bilgi için http://superuser.com/a/366645/114131 adresini ziyaret edin. –

+0

Not: Birinin düzgün çalışabilmesi için, '/ etc/shells' içindeki girdilerin yeniden düzenlenmesi gerektiğine dikkat edin, böylece yeni 'bash' konumu diğerlerinden önce gelir. – DilithiumMatrix

+0

@zhermes: Doğru değil. Siparişte/etc/shells herhangi bir şey üzerinde hiçbir etkisi yoktur. – Noldorin

2

Yüklendi, ancak giriş kabuğunuz olarak kullanılmadığını tahmin ediyorum.

Kabuğu, komut satırında dscl'yi kullanarak değiştirebilirsiniz. DSCL istemi tip anda

aşağıdadır:

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 

ben var o yardımcı olur benim blog eğer üzerinde DSCL kullanımının başka bir örnek.

+1

Önce/etc/shells'a yeni kabuğu eklemelisiniz: # sudo echo/opt/local/bin/bash >>/etc/shells – Fa11enAngel

+2

değiştir Yerel/Varsayılan/Kullanıcılar/simpatico UserShell/bin/bash/opt/local/bin/bash

özniteliği durumu: eDSAttributeNotFound DS Hatası: -14134 (eDSAttributeNotFound) – simpatico

2

Var olan Mac OS X giriş kabuğundan giriş kabuğu, geçiş yapabilirsiniz (varsayılan olarak onun /bin/bash Mac OS X ile birlikte gelen) sadece aşağıdaki shell script kullanarak MacPorts /opt/local/bin/bash için,:

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

Grep çıkışını sınayın, çıkış durumunu sınayın. Eğer grep -Fxq/opt/local/bin/bash/etc/shells ise; then' – geirha