Tras casi tres años de desarrollo, se ha publicado una nueva versión del intérprete de comandos GNU Bash 5.3, utilizado por defecto en la mayoría de las distribuciones. LinuxAl mismo tiempo, se lanzó la biblioteca readline 8.3, utilizada en bash para la edición de la línea de comandos.
Las mejoras clave incluyen:
- Se implementan las nuevas formas de sustitución de comandos "${ command; }" y "${|command;}", lo que permite interceptar la salida del comando sin bifurcar un proceso hijo independiente ni usar tuberías sin nombre. Los resultados de la ejecución del comando se devuelven como resultado de la sustitución o se escriben en la variable REPLY.
- Se ha añadido la nueva variable GLOBSORT, que define el método de ordenación al añadir una ruta de archivo. Por ejemplo, se puede ordenar por nombre (GLOBSORT=nombre), tamaño (GLOBSORT=tamaño) o fecha de modificación (GLOBSORT=mtime), así como definir un orden directo (de menor a mayor) o inverso (de mayor a menor) (por ejemplo, con "GLOBSORT=-tamaño", se mostrarán primero los archivos más grandes).
- El comando "compgen" incorporado ahora tiene una opción "-V varname" para guardar las adiciones generadas en una variable en lugar de enviarlas a la salida estándar.
- Se ha agregado la opción "-E" al comando integrado "read", que utiliza la biblioteca readline con reglas de autocompletado de construcción bash al ingresar datos.
- El comando integrado "source" ahora tiene una opción "-p PATH" que permite anular la lista de búsqueda en las rutas de archivos (se usa el valor especificado en lugar de la variable $PATH).
- El código fuente se ha convertido para usar el estándar C23. Se ha interrumpido la posibilidad de crear compiladores en el modo "K&R C" (el estilo que corresponde a la descripción del lenguaje C en el libro "El lenguaje de programación C" de Kernighan y Ritchie).
- El comando integrado "umask" es totalmente compatible con las especificaciones POSIX.
- Se agregó un comando cargable "kv" que genera una matriz asociativa basada en un conjunto de datos en formato clave-valor.
- Se agregó el comando cargable "strptime" que convierte la representación textual de fecha y hora en tiempo de época (número de segundos desde el 1 de enero de 1970).
- Se agregó un comando cargable "fltexpr" que permite operaciones aritméticas de punto flotante similares al comando let.
- Se agregó la variable configurada dinámicamente BASH_MONOSECONDS, que contiene el valor actual del reloj monótono del sistema, que aumenta continuamente, incluso cuando el tiempo cambia al valor pasado.
- En el modo POSIX, las comparaciones de cadenas en el comando "test" utilizando los operadores "<" y ">" ahora se realizan teniendo en cuenta la configuración regional actual.
- El comando "bind -x" permite que un espacio separe la clave y el comando a invocar, siempre que la secuencia esté entre comillas dobles.
- La nueva versión de Readline ofrece la opción "search-ignore-case" para realizar búsquedas en el historial que no distingan entre mayúsculas y minúsculas. Se ha añadido el comando "export-completions" para exportar las palabras completadas y procesarlas en otros procesos. Se ha añadido el comando "execute-named-command" para ejecutar un comando cuyo nombre se obtiene del flujo de entrada estándar.
Fuente: opennet.ru
