Como você pode exportar seu .bashrc para .zshrc?

87

Estou tentando passar do Bash para zsh.

Coloquei meu .bashrc diretamente em meu .zshrc e isso causou muitos erros quando tentei usar o Bash novamente.

Como você pode exportar seu .bashrc para .zshrc?

Léo Léopold Hertz 준영
fonte
19
Não deixe esse zsh-hater te derrubar. Zsh é ótimo!
Jeremy Cantrell

Respostas:

110

Embora a resposta de lhunath tenha me empurrado na direção certa, zsh não parece se originar .profileautomaticamente. Muitas informações boas sobre este tópico podem ser encontradas nesta postagem do superusuário .

A adaptação que estou usando é colocar aliases e funções comuns .profilee obtê-los manualmente da seguinte maneira:

Em ~/.bashrc:

source ~/.profile

Em ~/.zshrc:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

emulateé um comando zsh embutido. Com um único argumento, configure as opções zsh para emular o shell especificado tanto quanto possível.

Ryne Everett
fonte
2
Sim, acho que essa é a melhor abordagem. Obrigado pela sua resposta!
Léo Léopold Hertz 준영
a resposta acima está funcionando bem para mim também. mas preciso fazer isso sempre que abrir o terminal zshrc. você pode me dizer como corrigir isso.
theedudecodes
33

Você não pode " exportar " seu .bashrcpara a .zshrc. .bashrcé um arquivo que executa bashcomandos. .zshrcé um arquivo que executa zshcomandos.

Você não pode esperar zshpara ser capaz de executar os bashcomandos em seu .bashrc, então você deve convertê-lo em um novo .zshrcem vez de tentar executar .bashrca partir .zshrcou copiar o anterior para o último.

Se você deseja um arquivo de inicialização de shell comum para todos os seus shells; usar .profile(e remover .bashrce .zshrc). É fornecido por todos os shells POSIX. E aí, atenha-se apenas aos recursos do shell POSIX . Então esse código será executado em qualquer shell POSIX. (Porém, não estou 100% certo de que zshseja compatível com POSIX).

Vejo: http://mywiki.wooledge.org/DotFiles .

Embora - e eu tenha interpretado mal esta parte da sua pergunta - você não deve ter erros bashao executar o seu, a .bashrcmenos que coloque zshcomandos lá. Você fez? Que erros você está recebendo? Parece-me que você adicionou zshcódigo ao seu .bashrce bash(obviamente) não entende.

Como um aparte, ojblasstenta fazer questão de portabilidade que só funciona parcialmente. zshé um ótimo shell (embora eu não tenha tido as honras), mas ao escrever scripts; Eu recomendo que você faça isso com #!/usr/bin/env bash. Principalmente apenas para você (e, eventualmente, as pessoas que você compartilha com elas), por questão de portabilidade.

lhunath
fonte
Veja a declaração "Coloquei meu .bashrc diretamente em meu .zshrc e isso causou muitos erros quando tento usar o Bash novamente." agora pense por um momento o que causaria isso ... e então reformule sua postagem.
ojblass de