Após quase 2 anos de desenvolvimento (vinte meses de desenvolvimento para ser exato) o lançamento de a nova versão do shell GNU bash 5.2, que é uma atualização para a quinta ramificação (5.x) e que esta versão corrige vários bugs notáveis no bash-5.1 e apresenta vários novos recursos.
Para aqueles que são novos no bash, você deve saber que este é um shell padrão na maioria das distribuições Linux.
Principais novos recursos do Bash 5.2
Nesta nova versão que é apresentada a partir do Bash 5.2 nota-se que o trabalho foi feito na reescrita do código para analisar as construções de substituição de comando e substituindo a saída ao executar outro comando, como "$(command)" ou `command`. A nova implementação chama o analisador bison recursivamente. Isso substitui a análise ad-hoc usada em versões anteriores e permite uma melhor verificação de sintaxe e detecta erros de sintaxe muito mais cedo.
Outra mudança que se destaca nesta nova versão do Bash 5.2 é a análise melhorada e expansão de índices de matriz, além da capacidade de usar os parâmetros "@" e "*" no comando interno para redefinir uma chave para um determinado valor em vez de redefinir toda a matriz.
Além disso, também é mencionado que adicionou uma nova configuração “patsub_replacement”, quando definido, o caractere '&' na string substituída é usado para substituir a parte da string que corresponde ao padrão fornecido.
Também destaca-se que há uma nova estrutura para tempos de espera de linha de leitura, que inclui novos
funções públicas para definir tempos limite e ver quanto tempo resta antes de expirar, além de uma nova opção de configuração: --with-shared-termcap-library, que força a biblioteca de readline compartilhada a se vincular à biblioteca termcap compartilhada (ou curses /ncurses/termlib) para que os aplicativos não precisem.
Das outras mudanças que se destacam nesta nova versão do Bash 5.2:
- O número de situações em que processos adicionais não são bifurcados foi expandido, por exemplo, bifurcação não é mais usada ao usar a construção "$("
- Implementou uma nova estrutura interna para cálculo de timer e timeout.
- Forneceu a capacidade de habilitar em tempo de compilação (configure --enable-alt-array-implementation) uma implementação de array alternativa que é otimizada para velocidade máxima de acesso ao custo de maior consumo de memória.
- Uso estendido das substituições $'…' e $»…» usadas na localização.
- 'printf' tem um novo especificador de formato '%Q'. Isso funciona como "%q", mas aplica qualquer precisão especificada ao argumento original sem aspas, depois cita e gera o resultado.
- Adicionada a configuração noexpand_translations e a opção de compilação "configure --enable-translatable-strings" para controlar se o suporte para substituições localizáveis $"..." está ativado.
- No modo posix, o `printf' agora pode ser usado long double para especificadores de conversão de ponto flutuante, caso contrário, deve ser apenas double caso contrário.
- Adicionado e ativado por padrão "globskipdots" para evitar "." e ".." ao expandir rotas..
Ao mesmo tempo, foi lançada a biblioteca readline 8.2, que é usada no bash para organizar a edição da linha de comando.
Por último, deve-se mencionar que esta versão do bash pode ser vinculada a uma biblioteca Readline já instalado em vez da versão privada em lib/readline se desejar. É importante apenas mencionar que a versão do linha de leitura-8.1 e versões posteriores podem fornecer todos os símbolos exigidos pelo bash-5.2, portanto, versões anteriores da biblioteca Readline não funcionarão corretamente.
Finalmente para aqueles que estão interessados em poder conhecer um pouco mais e também aqueles que desejam obter esta nova versão agora, você pode visitar o seguinte link.
Como obter o Bash 5.2 no Linux?
No momento Resta apenas esperar que esta nova versão do Bash seja incorporada dentro dos repositórios das distribuições Linux, pois é a melhor opção.