Bash 5.2 ya fue liberado y llega con novedades, correcciones y mas

septiembre 27, 2022 0 Comments

bash

Bash (Bourne Again SHell) es un Proyecto GNU, una completa implementación de la especificación de shell POSIX

Después de casi 2 años de desarrollo (veinte meses de desarrollo para ser exactos) se dio a conocer el lanzamiento de la nueva versión del shell GNU Bash 5.2, la cual es una actualización de la quinta rama (5.x) y que esta versión corrige varios errores destacados en bash-5.1 e introduce una serie de nuevas características.

Para quienes aún desconocen de bash deben saber que esté es un shell predeterminado en la mayoría de las distribuciones de Linux.

Principales novedades de Bash 5.2

En esta nueva versión que se presenta de Bash 5.2 se destaca que se trabajó en reescribir el código para analizar las construcciones de sustitución de comandos y la sustitución de la salida al ejecutar otro comando, como «$(comando)» o `comando`. La nueva implementación llama al analizador bison recursivamente. Esto reemplaza el análisis ad-hoc utilizado en versiones anteriores y permite una mejor verificación de sintaxis y detecta errores de sintaxis mucho antes.

Otro de los cambios que se destaca de esta nueva versión de Bash 5.2, es el análisis mejorado y expansión de índices de matriz, ademas de que se implementó la capacidad de usar los parámetros «@» y «*» en el comando incorporado para restablecer una clave con un valor dado en lugar de restablecer toda la matriz.

Ademas de ello, tambien se menciona que se agregó una nueva configuración «patsub_replacement», cuando se configura, el carácter «&» en la cadena reemplazada se usa para reemplazar la parte de la cadena que coincide con el patrón dado.

Tambien se destaca que hay un nuevo marco para los tiempos de espera readline, que incluye nuevas
funciones públicas para establecer tiempos de espera y consultar cuánto tiempo queda antes de que se agote, ademas de que hay una nueva opción de configuración: –with-shared-termcap-library, que obliga a vincular la biblioteca readline compartida con la biblioteca termcap compartida (o curses/ncurses/termlib) para que las aplicaciones no tengan que hacerlo.

De los demás cambios que se destacan de esta nueva versión de Bash 5.2:

  • Se amplió la cantidad de situaciones en las que los procesos adicionales no se bifurcan, por ejemplo, la bifurcación ya no se usa cuando se usa la construcción «$(<archivo)».
  • Se implementó un nuevo marco interno para el cálculo del temporizador y el tiempo de espera.
  • Proporcionó la capacidad de habilitar en el momento de la compilación (configure –enable-alt-array-implementation) una implementación alternativa de arreglos que está optimizada para lograr la máxima velocidad de acceso a costa de un mayor consumo de memoria.
  • Uso extendido de las sustituciones $’…’ y $»…» utilizadas en la localización.
  •  ‘printf’ tiene un nuevo especificador de formato «%Q». Esto actúa como «%q» pero aplica cualquier precisión especificada al argumento original sin comillas, luego cita y genera el resultado.
  • Se agregó la configuración noexpand_translations y la opción de compilación «configure –enable-translatable-strings» para controlar si la compatibilidad con $»…» sustituciones localizables está habilitada.
  • En modo posix, el `printf’ ahora se puede usar long double para los especificadores de conversión de punto flotante si está presente, si no solo debe ser double de lo contrario.
  • Agregado y habilitado de forma predeterminada «globskipdots» para evitar «.» y «..» al expandir rutas..

Al mismo tiempo, se formó el lanzamiento de la biblioteca readline 8.2, que se usa en bash para organizar la edición de la línea de comandos.

Por último cabe mencionar que esta versión de bash se puede vincular con una biblioteca Readline ya instalada en lugar de la versión privada en lib/readline si lo desean. Solo es importante mencionar que la versión de readline-8.1 y versiones posteriores pueden proporcionar todos los símbolos que requiere bash-5.2, por lo que las versiones anteriores de la biblioteca Readline no funcionarán correctamente.

Finalmente para quienes estén interesados en poder conocer un poco más y también aquellos que quieran obtener ya esta nueva versión, pueden visitar el siguiente enlace.

¿Cómo obtener Bash 5.2 en Linux?

De momento solo queda esperar a que sea incorporada esta nueva versión de Bash dentro de los repositorios de las distribuciones de Linux, ya que es la mejor opción.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.