Publication de la version 5.3 de l'interface de commande Bash

Après presque trois ans de développement, une nouvelle version de l'interpréteur de commandes GNU Bash 5.3, utilisé par défaut dans la plupart des distributions Linux, a été publiée. En parallèle, une release de la bibliothèque readline 8.3, utilisée dans bash pour gérer l'édition de la ligne de commande, a été établie.

Parmi les améliorations clés, on peut noter :

  • De nouvelles formes de substitution de commandes « ${ command; } » et « ${|command;} » ont été mises en œuvre, permettant de capturer la sortie de la commande sans créer de processus fils distinct et sans utiliser de canaux anonymes. Les résultats de l'exécution de la commande sont retournés comme résultat de substitution ou enregistrés dans la variable REPLY.
  • Une nouvelle variable GLOBSORT a été ajoutée, définissant la méthode de tri lors de la complétion des chemins de fichiers. Par exemple, il est possible de choisir un tri par nom (GLOBSORT=name), taille (GLOBSORT=size) ou date de modification (GLOBSORT=mtime), ainsi que de définir un ordre direct (du plus petit au plus grand) ou inverse (du plus grand au plus petit) (par exemple, avec « GLOBSORT=-size », les fichiers les plus volumineux seront affichés en premier).
  • La commande intégrée « compgen » a été enrichie d'une option « -V varname » pour enregistrer les complétions générées dans une variable, au lieu de les afficher dans le flux standard.
  • La commande intégrée « read » a maintenant une option « -E », qui utilise la bibliothèque readline pour appliquer des règles d'auto-complétion lors de l'entrée des données.
  • La commande intégrée « source » a été dotée d'une option « -p PATH », permettant de redéfinir la liste de recherche dans les chemins de fichiers (la valeur spécifiée est utilisée à la place de la variable $PATH).
  • Le code source a été mis à jour pour utiliser la norme C23. La possibilité de compilation avec des compilateurs en mode « K&R C » (style correspondant à la description du langage C dans le livre « The C Programming Language » de Kernighan et Ritchie) a été supprimée.
  • La commande intégrée « umask » est désormais complètement compatible avec les spécifications POSIX.
  • Une commande chargée « kv » a été ajoutée, qui forme un tableau associatif à partir d'un ensemble de données au format « clé valeur ».
  • Une commande chargée « strptime » a été ajoutée, convertissant une représentation textuelle de la date et de l'heure en temps epoch (nombre de secondes depuis le 1er janvier 1970).
  • Une commande chargée « fltexpr » a été ajoutée, permettant d'effectuer des opérations arithmétiques à virgule flottante, semblable à la commande let.
  • Une nouvelle variable dynamique BASH_MONOSECONDS a été ajoutée, contenant la valeur actuelle de l'horloge monotone du système, qui augmente continuellement, même lorsque le temps est changé dans le passé.
  • En mode POSIX, la comparaison de chaînes dans la commande «test», utilisant les opérateurs «», se fait maintenant en tenant compte de la locale actuelle.
  • Dans la commande «bind -x», il est maintenant permis de séparer par un espace la touche et la commande invoquée, si la séquence est entourée de guillemets doubles.
  • La nouvelle version de Readline propose une option «search-ignore-case» pour la recherche dans l'historique sans tenir compte de la casse des caractères. La commande «export-completions» a été ajoutée pour exporter les options de complétion de mots à utiliser dans d'autres processus. La commande «execute-named-command» a été ajoutée pour exécuter une commande dont le nom est obtenu à partir du flux d'entrée standard.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster