私はこのスレッドで次のスニペットを見ました:デフォルトのシェルとしてcshからbashに変更する方法
sleep 2
if (-x /usr/local/bin/bash) then
exec /bin/sh -c '. ~/.profile; exec /usr/local/bin/bash'
endif
私の理解では、このスニペットを~/.login
そこに配置するとbash
、ログイン時に呼び出されます。
同様のスニペットを使用して、zsh
ログインに使用するデフォルトのバージョンとは異なるバージョンを呼び出したいという同様の状況があります。この問題が発生する理由の一部は、選択できないためですでzsh
許可されているオプションのの希望するバージョンで、chsh
管理者権限がありません。
これとともに:
- 異なるバージョンのzshを切り替えるときに、上記のスニペットをどのように変更すればよいですか?
exec
上記のスニペットに2つのコマンドが必要なのはなぜですか?彼らは何をしますか?また、なぜ使用上のスニペットはありませんsh
し、bash
(ユーザーが持つログインになっていますcsh
)
.zprofile
:に次のように書きました、if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
そしてそれはうまくいくようです!