亚马逊建议将zsh添加到.bashrc中,以更改AWS CloudShell的默认外壳,因为chsh不知何故不起作用。正如我正确理解的那样,zsh在子进程中运行。我想知道是否可以将source zsh添加到.bashrc中,因为我希望减少一个作为极简主义者的过程。
发布于 2022-07-25 06:15:18
我认为您的意思是exec zsh,而不是source zsh,因为source将文件作为一组bash语句处理,因此不能与二进制文件一起使用。
您可以这样做,但建议您谨慎行事:
假设您已经以这种方式建立了一个交互式zsh,您可以在其中工作,并且在工作期间,您想要创建一个交互式bash子subshell (可能用于处理一些bash命令)。如果您的.bashrc中有一个普通的.bashrc,那么对bash的调用将再次导致zsh,而不是您想要的。
为了避免这种情况,您可以在.bashrc中使用一个警卫,如下所示:
if [[ -z ${bash_zsh_guard:-} ]]
then
export bash_zsh_guard=NO
exec zsh
fi在您的“顶级”aws bash中,这将用zsh替换bash进程,但是在任何子bash进程中,您都将坚持bash。
https://stackoverflow.com/questions/73102970
复制相似问题