Mengapa saya tidak dapat beralih bash ke yang diinstal oleh homebrew?

2

Saya mencoba memperbarui bash ke versi 4.x. Saya membuat pembaruan, lalu membuat pembaruan, kemudian membuat install bash. Saya berlari sudo bash -c "echo /usr/local/bin/bash >> /etc/shells"dan sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells". Saya sudah mencoba symlinking /usr/local/Cellar/bash/4.3.32/bin/bash ke / usr / local / bin / bash. Saya sudah menutup Terminal.app. Saya bahkan sudah keluar dari Mac sepenuhnya. Tidak ada yang saya lakukan telah memperbarui $ BASH_VERSION ke hal yang benar. bash --versionmemang mengatakan hal yang benar, tapi saya pikir saya membaca di suatu tempat bahwa itu kurang dapat diandalkan echo $BASH_VERSION(mungkin). Berikut ringkasan dari apa yang saya lihat:

masukkan deskripsi gambar di sini

Saya hanya perlu tahu. . . versi bash apa yang sebenarnya saya pakai? Dan jika bukan 4.x, bagaimana saya dapat diandalkan, secara definitif membuatnya seperti itu?

Saya di Yosemite FWIW.

Sunting:

$ PATH terlalu panjang untuk dikomentari. Ini dia:

/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin:/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin:/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/heroku/bin:/usr/local/opt/coreutils/libexec/gnubin:/usr/local/Cellar/grep/2.18/bin:/usr/local/opt/gnu-sed/libexec/gnubin:/usr/local/opt/gnu-tar/libexec/gnubin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:~/activator:/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64:/Users/AndrewNichols/sonar-runner-2.4/bin:/Users/AndrewNichols/bin:/Users/AndrewNichols/.rvm/bin

Berikut ini satu pemisahan pada titik dua, untuk keterbacaan:

'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1/bin',
'/Users/AndrewNichols/.rvm/gems/ruby-2.1.1@global/bin',
'/Users/AndrewNichols/.rvm/rubies/ruby-2.1.1/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'/usr/local/bin',
'/usr/bin',
'/bin',
'/usr/sbin',
'/sbin',
'/opt/X11/bin',
'/usr/local/heroku/bin',
'/usr/local/opt/coreutils/libexec/gnubin',
'/usr/local/Cellar/grep/2.18/bin',
'/usr/local/opt/gnu-sed/libexec/gnubin',
'/usr/local/opt/gnu-tar/libexec/gnubin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'~/activator',
'/Users/AndrewNichols/sonarqube-4.5/bin/macosx-universal-64',
'/Users/AndrewNichols/sonar-runner-2.4/bin',
'/Users/AndrewNichols/bin',
'/Users/AndrewNichols/.rvm/bin'

Beberapa duplikasi ada karena saya memiliki terminal yang diatur untuk menjalankan tmux saat startup, jadi .bashrc bersumber dua kali.

tandrewnichols
sumber
Di mana dan bagaimana Anda mengubah shell login untuk akun pengguna Anda?
nohillside
chsh -s /usr/local/bin/bash. Pada dasarnya seperti dijelaskan di sini .
tandrewnichols
apa output dari echo $PATH?
njboot
@njboot - Lihat hasil edit saya di atas.
tandrewnichols

Jawaban:

3

Oke, jadi rupanya ini terjadi karena tmux berpegang pada versi bash asli (walaupun saya telah keluar dari tmux dan memuat ulang konfigurasi itu). tmux kill-serverdiikuti dengan meluncurkan tmux memperbaikinya untuk saya.

tandrewnichols
sumber
-3

Ini akan memperbaiki masalah Anda.

mv /bin/bash /bin/bash3 

lalu buat symlink ke

ln -s /usr/local/bin/bash /bin/bash

Itu harus memperbaiki masalah Anda.

Retribusi
sumber
2
Saya bukan ahli, tapi itu sepertinya ide yang sangat buruk. Sebenarnya, saya cukup yakin ini tidak mungkin dengan SIP pada 10.11 dan yang lebih baru.
NReilingh
Yah, saya sedang di Yosemite, jadi SIP belum tentu menjadi masalah. Tapi itu kedengarannya cerdik. Saya merasa cukup aneh memindahkan / usr / local / bin / bash ke /usr/local/bin/bash.bak sehingga saya bisa menghubungkannya dengan yang homebrew.
tandrewnichols