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?
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?
Respostas:
Embora a resposta de lhunath tenha me empurrado na direção certa, zsh não parece se originar .profile
automaticamente. 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 .profile
e 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.
Você não pode " exportar " seu .bashrc
para a .zshrc
. .bashrc
é um arquivo que executa bash
comandos. .zshrc
é um arquivo que executa zsh
comandos.
Você não pode esperar zsh
para ser capaz de executar os bash
comandos em seu .bashrc
, então você deve convertê-lo em um novo .zshrc
em vez de tentar executar .bashrc
a partir .zshrc
ou 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 .bashrc
e .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 zsh
seja 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 bash
ao executar o seu, a .bashrc
menos que coloque zsh
comandos lá. Você fez? Que erros você está recebendo? Parece-me que você adicionou zsh
código ao seu .bashrc
e bash
(obviamente) não entende.
Como um aparte, ojblass
tenta 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.