Después de casi tres años de desarrollo, se ha publicado una nueva versión del intérprete de comandos GNU Bash 5.3, que se utiliza por defecto en la mayoría de las distribuciones de Linux. Al mismo tiempo, se ha formado el lanzamiento de la biblioteca readline 8.3, que se utiliza en bash para organizar la edición de la línea de comandos.
Las principales mejoras incluyen:
- Se han implementado nuevas formas de sustitución de comandos «${ command; }» y «${|command;}», que permiten capturar la salida del comando sin ramificar un proceso hijo separado y sin 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 una nueva variable GLOBSORT, que determina el método de ordenación al completar la ruta del archivo. Por ejemplo, se puede elegir la ordenación por nombre (GLOBSORT=name), tamaño (GLOBSORT=size) o tiempo de modificación (GLOBSORT=mtime), así como definir el orden directo (de menor a mayor) o inverso (de mayor a menor) de la ordenación (por ejemplo, con «GLOBSORT=-size» primero se mostrarán los archivos más grandes).
- Se ha añadido la opción «-V varname» al comando integrado «compgen» para guardar las completaciones generadas en una variable, en lugar de enviarlas a la salida estándar.
- Se ha añadido la opción «-E» al comando integrado «read», que utiliza la biblioteca readline con las reglas de autocompletado de las construcciones de bash al introducir datos.
- Se ha añadido la opción «-p PATH» al comando integrado «source», que permite redefinir la lista de búsqueda en las rutas de archivos (el valor especificado se utiliza en lugar de la variable $PATH).
- El código fuente ha sido convertido para utilizar el estándar C23. Se ha cesado la posibilidad de compilar con los compiladores en modo «K&R C» (el estilo que corresponde a la descripción del lenguaje C en el libro «The C Programming Language» de Kernighan y Ritchie).
- El comando integrado «umask» ha sido completamente compatible con las especificaciones POSIX.
- Se ha añadido el comando cargable «kv», que forma un array asociativo basado en un conjunto de datos en formato «clave valor».
- Se ha añadido el comando cargable «strptime», que convierte la representación textual de la fecha y hora en tiempo de época (número de segundos desde el 1 de enero de 1970).
- Se ha añadido el comando cargable «fltexpr», que permite realizar operaciones aritméticas de punto flotante de forma similar al comando let.
- Se ha añadido una variable BASH_MONOSECONDS que se establece dinámicamente y que contiene el valor actual del reloj monotónico del sistema, que se incrementa constantemente, incluso al cambiar la hora a un valor anterior.
- En modo POSIX, la comparación de cadenas en el comando «test», utilizando los operadores «», ahora se realiza teniendo en cuenta la configuración regional actual.
- En el comando «bind -x» se permite separar la tecla y el comando asociado con un espacio si la secuencia está encerrada entre comillas dobles.
- La nueva versión de Readline propone la opción «search-ignore-case» para buscar en el historial sin tener en cuenta la capitalización de los caracteres. Se ha añadido el comando «export-completions» para exportar opciones de autocompletado para su procesamiento en otros procesos. También se ha añadido el comando «execute-named-command» para ejecutar un comando cuyo nombre se recibe desde la entrada estándar.
Fuente: opennet.ru
