我在该线程中看到了以下代码片段:如何将csh更改为bash作为默认shell
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
上面的代码片段需要两个命令?他们在做什么?另外,为什么上述代码段使用sh
和bash
(用户应该使用登录csh
)
.zprofile
:上写了以下内容if [[ $ZSH_VERSION != 4.3.14 ]]; then exec /n/sw/zsh-4.3.14/bin/zsh --login fi
,这似乎可行!