Guia de pontos de verificação de compatibilidade para quem muda do Bash para o Zsh
Na série de introdução ao Zsh até agora, aprendemos sobre o encanto do Zsh, o seu uso básico e como personalizá-lo com o Oh My Zsh. Muitos de vós provavelmente tomaram a firme decisão de "Ok, a partir de agora, vou usar o Zsh como o meu shell principal!". Essa decisão é fantástica!
No entanto, quanto mais habituado estiver ao Bash, mais provável é que, ao mudar, lhe surjam preocupações sobre a compatibilidade, como "Os scripts Bash que tenho usado ainda funcionarão?" ou "O que devo fazer com os meus ficheiros de configuração?". É uma sensação semelhante a mudar-se de uma casa em que viveu durante anos para um novo apartamento de alta tecnologia e preocupar-se se os seus móveis e eletrodomésticos ainda servirão.
Não se preocupe, na maioria dos casos, a transição do Bash para o Zsh é extremamente suave. Neste artigo, compilámos uma lista de pontos de verificação de compatibilidade importantes para que possa concluir a sua mudança para o Zsh com total tranquilidade. Ao ler isto, poderá evitar as "armadilhas" da migração antecipadamente e começar a sua vida no seu novo ambiente de shell com confiança!
O uso interativo (uso diário) quase não apresenta problemas!
Em primeiro lugar, e mais importante, no uso interativo do terminal — ou seja, no trabalho diário de digitar comandos um a um — quase não existem grandes incompatibilidades entre o Bash e o Zsh.
Comandos básicos como ls, cd, cp, mv, rm funcionam exatamente da mesma maneira. O comportamento dos pipelines (|) e das redireções (>, >>) também é o mesmo. Na verdade, como aprendemos no artigo anterior, com funcionalidades melhoradas como o preenchimento automático e o histórico, a sua experiência de uso diário deverá ser muito mais confortável com o Zsh.
Pontos de verificação de compatibilidade de scripts de shell
Onde é preciso ter cuidado é principalmente ao executar scripts de shell. Vamos percorrer os pontos que podem potencialmente tornar-se problemas ao tentar executar um script Bash que escreveu ou obteve de algum lugar num ambiente Zsh.
Ponto de verificação 1: Verificar o shebang
Este é o ponto mais importante. A linha no início de um ficheiro de script, #!/bin/bash, é chamada de "shebang". Esta é uma instrução clara para o SO para "por favor, execute este script com o Bash".
#!/bin/bash
# Este script será executado pelo Bash, mesmo que o seu shell padrão seja o Zsh
echo "Hello from Bash!"
Desde que este shebang esteja escrito corretamente, mesmo que o seu shell padrão tenha sido alterado para Zsh, esse script será executado corretamente pelo Bash. Por outras palavras, a maioria dos scripts Bash no mundo funcionará perfeitamente num ambiente Zsh sem quaisquer alterações.
Ponto de verificação 2: Indexação de arrays
Como já abordámos num artigo anterior, a incompatibilidade mais famosa entre o Bash e o Zsh é o manuseamento dos índices dos arrays (números de elemento). É preciso ter cuidado com isto ao escrever novos scripts no Zsh.
No Bash, o primeiro elemento está no índice 0.
# No caso do Bash
my_array=("apple" "banana" "cherry")
echo ${my_array[0]}
# Saída: apple
Por outro lado, no Zsh, o primeiro elemento está no índice 1.
# No caso do Zsh
my_array=("apple" "banana" "cherry")
echo $my_array[1]
# Saída: apple
Ao reescrever um script Bash para Zsh, por exemplo, se não estiver ciente desta diferença, pode causar a obtenção de elementos do array com um desfasamento de um.
Ponto de verificação 3: Migração de ficheiros de configuração (`.bashrc` -> `.zshrc`)
Quando usava o Bash, talvez tenha escrito os seus próprios aliases e configurações de variáveis de ambiente em ficheiros como .bash_profile ou .bashrc. Ao mudar para o Zsh, estas configurações não são transferidas automaticamente. É necessário "mudar" as suas configurações para o ficheiro de configuração do Zsh, ~/.zshrc.
Por exemplo, digamos que tinha as seguintes configurações no seu .bashrc:
# Exemplo de configurações que estavam no .bashrc
alias ll='ls -alF'
alias g='git'
export EDITOR='vim'
export PATH="/usr/local/bin:$PATH"
Felizmente, a maioria destas funcionará apenas copiando-as e colando-as no final do seu ficheiro .zshrc. Também pode mover as suas configurações de uma só vez com o seguinte comando.
cat ~/.bash_profile >> ~/.zshrc
Depois disso, execute source ~/.zshrc ou reinicie o seu terminal, e os seus aliases e configurações familiares também estarão ativos no Zsh.
Conclusão
Desta vez, compilámos uma lista de verificação de compatibilidade para aqueles que estão a considerar uma mudança do Bash para o Zsh. Com isto, a sua ansiedade sobre a migração foi resolvida?
- Comandos de uso diário: Quase não há necessidade de se preocupar. Na verdade, o Zsh é mais conveniente.
- Scripts Bash existentes: Desde que tenham
#!/bin/bash, serão executados com o Bash e são seguros. - Novos scripts escritos em Zsh: Tenha em atenção que os índices dos arrays começam em 1.
- Configurações pessoais: Terá de mover as suas configurações de
.bashrc, etc., para.zshrc.
O Zsh é verdadeiramente um shell para o programador moderno, mantendo a facilidade de uso do Bash e, ao mesmo tempo, estando equipado com muito mais funcionalidades convenientes. Desde que entenda algumas pequenas diferenças, não há razão para não fazer a mudança. Com isto concluímos a nossa série de introdução ao Zsh.
Com esta nova "arma definitiva" nas suas mãos, esperamos sinceramente que a sua jornada de criação web futura seja mais confortável, criativa e eficiente!