Bash 5.0 lançado com novos recursos

9 de janeiro de 2019

A lista de discussão confirmou o lançamento do Bash-5.0 recentemente. E é empolgante saber que ele vem com novos recursos e variáveis.

Bem, se você usa o Bash 4.4.XX, com certeza vai adorar o quinto lançamento principal do Bash.

A quinta versão se concentra em novas variáveis de shell e em várias correções de bugs importantes com uma revisão. Ele também apresenta alguns novos recursos, juntamente com algumas mudanças incompatíveis entre o bash-4.4 e o bash-5.0.

Logotipo do Bash

Logotipo do Bash E quanto aos novos recursos?

A lista de e-mails explica o bug corrigido nesta nova versão:

Esta versão corrige vários bugs pendentes no bash-4.4 e introduz vários novos recursos. As correções de bug mais significativas são uma revisão de como as variáveis nameref são resolvidas e uma série de erros de memória fora dos limites em potencial descobertos por meio de difusão. Há uma série de mudanças na expansão de [email protected] e $ * em vários contextos onde a divisão de palavras não é realizada para se conformar a uma interpretação padrão Posix, e mudanças adicionais para resolver casos extremos de conformidade Posix. Também apresenta alguns novos recursos. De acordo com a nota de lançamento, estes são os novos recursos mais notáveis são várias novas variáveis de shell:

O BASH_ARGV0, EPOCHSECONDS e EPOCHREALTIME. O "histórico" embutido pode remover intervalos de entradas de histórico e entende argumentos negativos como deslocamentos do final da lista de histórico. Há uma opção para permitir que variáveis locais herdem o valor de uma variável com o mesmo nome em um escopo anterior. Há uma nova opção de shell que, quando ativada, faz com que o shell tente expandir os subscritos da matriz associativa apenas uma vez (este é um problema quando eles são usados em expressões aritméticas). A opção de shell ‘globasciiranges’ agora está habilitada por padrão; ele pode ser desativado por padrão no momento da configuração.

> E as mudanças entre o Bash-4.4 e o Bash-5.0?

O log de atualização mencionado sobre as alterações incompatíveis e o histórico de versões readline suportadas. Aqui está o que disse:

Existem algumas mudanças incompatíveis entre o bash-4.4 e o bash-5.0. As mudanças em como as variáveis nameref são resolvidas significa que alguns usos de namerefs se comportarão de maneira diferente, embora eu tenha tentado minimizar os problemas de compatibilidade. Por padrão, o shell somente define BASH_ARGC e BASH_ARGV na inicialização se o modo de depuração estendido estiver habilitado; foi um descuido que foi definido incondicionalmente e causou problemas de desempenho quando os scripts receberam um grande número de argumentos. O Bash pode ser vinculado a uma biblioteca Readline já instalada, em vez da versão privada em lib/readline, se desejado. Apenas readline-8.0 e versões posteriores são capazes de fornecer todos os símbolos que o bash-5.0 requer; versões anteriores da biblioteca Readline não funcionarão corretamente. Eu acredito que alguns dos recursos/variáveis adicionados são muito úteis. Alguns dos meus favoritos são:

  • Há uma nova opção de shell (desabilitada por padrão, não documentada) para habilitar e desabilitar o envio de histórico para syslog em tempo de execução.
  • O shell não configura BASH_ARGC e BASH_ARGV automaticamente na inicialização, a menos que esteja no modo de depuração, como a documentação sempre disse, mas os criará dinamicamente se um script fizer referência a eles no nível superior sem ter ativado o modo de depuração.
  • O ‘histórico’ agora pode excluir intervalos de entradas do histórico usando ‘-d início-fim’.
  • Se um shell não interativo com controle de trabalho habilitado detectar que um trabalho de primeiro plano morreu devido ao SIGINT, ele atuará como se tivesse recebido o SIGINT.
  • BASH_ARGV0: uma nova variável que se expande para $ 0 e define $ 0 na atribuição.

Para verificar a lista completa de alterações e recursos, você deve consultar a postagem da lista de distribuição.

Empacotando

Você pode verificar sua versão Bash atual, usando este comando:

bash --version É mais provável que você tenha o Bash 4.4 instalado. Se você deseja obter a nova versão, aconselho aguardar que sua distribuição a forneça.

Com o Bash-5.0 disponível, o que você acha disso? Você está usando alguma alternativa ao bash? Se sim, essa atualização mudaria de ideia?

Deixe-nos saber seus pensamentos nos comentários abaixo.

Confira também a versão original desse post em inglês
Esse post foi originalmente escrito por Ankush Das e publicado no site itsfoss.com. Tradução sujeita a revisão.

Bash 5.0 Released with New Features

Propaganda
Blog Comments powered by Disqus.
Propaganda