Saya melihat cuplikan berikut di utas ini: Cara mengubah dari csh ke bash sebagai shell default
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
Pemahaman saya adalah bahwa jika Anda menempatkan potongan ini di ~/.login
dalamnya akan meminta bash
ketika Anda masuk.
Saya memiliki situasi yang serupa di mana saya ingin menggunakan cuplikan serupa untuk meminta versi zsh
yang berbeda dari yang standar dengan mana saya masuk. Salah satu alasan mengapa saya mengalami masalah ini adalah karena saya tidak dapat memilih versi yang saya inginkan zsh
dalam opsi diizinkan masuk chsh
, dan saya tidak memiliki hak administrator.
Dengan ini:
- Bagaimana saya mengubah cuplikan di atas untuk melakukan ini ketika beralih di antara berbagai versi zsh?
- Mengapa dua
exec
perintah diperlukan dalam cuplikan di atas? Apa yang mereka lakukan? Juga, mengapa cuplikan di atas menggunakansh
danbash
(pengguna seharusnya masuk dengancsh
)
.zprofile
:if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
dan itu tampaknya berhasil!