O último método não altera o seu shell - ele apenas diz ao shell antigo para executar um novo.
Além de ser quase duas vezes mais lento (já que você sempre começa a bater cada vez), isso pode resultar em algumas interações inesperadas:
-
Em alguns sistemas, comandos em lote como
ssh myhost "ps -ef"
irão originar ~ / .bashrc antes de executar o comando - mas sua linha "exec zsh" esqueceu-se de explicar isso e executa um interativo shell, não importa o quê. Se isso acontecer, todo o uso em lote do SSH (incluindo SFTP) está quebrado. -
Em outros sistemas, tais comandos em lotes não originam ~ / .bashrc (ou, freqüentemente, eles fazem, mas ~ / .bashrc retorna cedo se estiver em modo batch) - assim seu "exec zsh" nunca é alcançado. Portanto, a tentativa do seu amigo de mudar o shell é menos eficaz.
-
Se você esquecer essa alteração e tentar editar ~ / .zshrc para fazer o oposto (ou seja, executar o bash), obterá um loop infinito.