Después de veinte meses de desarrollo, se ha publicado una nueva versión del intérprete de comandos GNU Bash 5.2, que se utiliza por defecto en la mayoría de las distribuciones de Linux. Al mismo tiempo, se ha lanzado la versión 8.2 de la biblioteca readline, que se utiliza en bash para gestionar la edición de la línea de comandos.
Las principales mejoras incluyen:
- Se ha reescrito el código para analizar las construcciones de sustitución de comandos (command substitution, sustitución de la salida de la ejecución de otro comando, por ejemplo, «$(command)» o `command`). La nueva implementación utiliza una llamada recursiva al analizador bison y se caracteriza por una mejor comprobación de sintaxis y una detección temprana de errores en las construcciones sustituidas.
- Se ha mejorado el análisis y la expansión de índices de arrays. Se ha implementado la posibilidad de usar los parámetros «@» y «*» en el comando interno unset para restablecer una clave con un valor dado en lugar de restablecer todo el array.
- Se ha añadido una nueva configuración «patsub_replacement», que, al estar activada, usa el símbolo «&» en la cadena que se reemplaza para insertar parte de la cadena que coincide con el patrón dado. Para insertar el literal «&», es necesario escapar utilizando una barra invertida.
- Se ha ampliado el número de situaciones en las que no se lleva a cabo la bifurcación de procesos adicionales; por ejemplo, fork ya no se aplica al usar la construcción «$».
- Se ha implementado un nuevo marco interno para temporizadores y cálculo de tiempos de espera.
- Se ha habilitado la opción de incluir durante la etapa de compilación (configure —enable-alt-array-implementation) una implementación alternativa de arrays, optimizada para lograr la máxima velocidad de acceso a costa de un mayor consumo de memoria.
- Se ha ampliado el uso de sustituciones $’…’ y $»…», utilizadas en la localización. Se han añadido la configuración noexpand_translations y la opción de compilación «configure —enable-translatable-strings», que controlan la inclusión del soporte para sustituciones localizables $»…».
- Se ha añadido y habilitado por defecto la configuración «globskipdots», que prohíbe el retorno de «.» y «..» al expandir rutas.
Fuente: opennet.ru
