@ Mklement0 [tarafından bir yükseltme sorunuyla ilgili olarak gönderilen mükemmel açıklama ve çözüm için buraya bakın bash.
Benim sistemde tam tersini yaparak benzer bir sorun vardı (OS X 10.10.1): yapım bashBen yüklü sonra tekrar varsayılan giriş kabuğu oh-my-zshyapılan hangi zshvarsayılan ve ardından yükseltme bashHomebrew (kullanarak 4.3.30 için 3.2.53 den Apple neden Yosemite'yi eski bir bashsürümle gönderiyor?).
Bence SHELLortam değişkeni yansıtır ama yok değil kullanıcı için gerçek varsayılan giriş kabuğu kontrol eder. Örneğin, diyelim ki bashvarsayılanınız varsa ve bashterminalden yeni bir kabuk penceresi açarsanız o $ export SHELL="/bin/zsh"; echo "$SHELL"zaman gösterecektir, /bin/zshancak terminalden yeni bir kabuk penceresi açar ve yaparsanız $ echo $0göreceksiniz -bash( $0adı ve yolu içerir) Bu durumda, kabuk penceresini başladı komuta bashve -onun yanında o) giriş kabuğu olduğunu gösterir.
@ Mklement0, kullanıcının gerçek varsayılan giriş kabuğunun kullanıcının UserShelldahili veritabanındaki kullanıcının kaydındaki özellik tarafından kontrol edildiğini belirttiğinden, bu komut satırı yardımcı programı kullanılarak sorgulanabilir ve güncellenebilir dscl. Bir kabuk penceresi açtığınızda bu bilgiler terminal uygulamanıza aktarılır.
Yapmak için chsh -s /bin/zshbu UserShellözelliği değiştirmek için değiştirin zsh- dscl . -read /Users/$USER/ UserShellhemen sonra bunu kontrol edebilirsiniz ve göreceksiniz UserShell: /bin/zsh. Ama değişiklik olduğunu değil gibi bir şey yapana kadar, geçerli pencerede etkilenen exec su - $USER@ mklement0 önerdiği gibi, ya da yakın size kadar ve bir kabuk penceresini açın.
/etc/shells? Kılavuz, belirttiğiniz kabuk bu dosyada değilse, standart bir kabuk olarak değerlendirilmediğini belirtir.