[[man_de_bash]]

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

man_de_bash [2016/03/30 15:33] (Version actuelle)
Ligne 1: Ligne 1:
 +==== Manuel de la commande "​bash"​ ====
 +
 +<​code>​
 +BASH(1) ​                                                 General Commands Manual ​                                                ​BASH(1)
 +
 +
 +
 +NOM
 +       bash - Interpréteur de commandes GNU Bourne-Again SHell
 +
 +SYNOPSIS
 +       bash [options] [chaîne_de_commande | fichier]
 +
 +COPYRIGHT
 +       Bash est Copyright © 1989-2013 par la Free Software Foundation, Inc.
 +
 +DESCRIPTION
 +       ​Bash ​ est un interpréteur de commandes (shell) compatible sh qui exécute les commandes lues depuis l'​entrée standard ou depuis un
 +       ​fichier. Bash inclut aussi des fonctionnalités utiles des interpréteurs de commandes Korn et C (ksh et csh).
 +
 +       Bash vise à être une implémentation conforme à la partie relative aux interpréteurs de commandes et  utilitaires ​ des  spécifica‐
 +       tions IEEE POSIX (norme IEEE 1003.1). Bash peut être configuré pour être conforme à la norme POSIX par défaut.
 +
 +OPTIONS
 +       ​Toutes ​ les  options d'​interpréteur monocaractères documentées dans la description de la commande interne set peuvent être utili‐
 +       sées comme options si l'​interpréteur est invoqué. De plus, bash accepte les options suivantes lors de son appel :
 +
 +       ​-c ​       Si l'​option -c est présente, les commandes sont lues depuis le premier argument chaîne_de_commande qui  n’est ​ pas  une
 +                 ​option. ​ Si  des  arguments suivent la chaîne_de_commande,​ ils sont affectés aux paramètres positionnels,​ en commençant
 +                 par $0.
 +       ​-i ​       Si l'​option -i est présente, l'​interpréteur est interactif.
 +       ​-l ​       Faire que bash se comporte comme s'il avait été appelé comme interpréteur de commandes de  connexion ​ (consultez ​ APPEL
 +                 ​ci-dessous).
 +       ​-r ​       Si l'​option -r est présente, l'​interpréteur devient restreint (consultez INTERPRÉTEUR RESTREINT ci-dessous).
 +       ​-s ​       Si  l'​option -s est présente ou s'il ne reste plus d'​argument après le traitement des options, alors les commandes sont
 +                 lues depuis l'​entrée standard. Cette option permet d'​affecter les paramètres positionnels tout en appelant un interpré‐
 +                 teur interactif.
 +       ​-D ​       Une  liste  de  toutes les chaînes entre guillemets doubles précédées de $ est affichée sur la sortie standard. Ce sont
 +                 les chaînes qui sont soumises à une traduction quand le paramètre linguistique régional ​ n'​est ​ ni  C  ni  POSIX. ​ Cela
 +                 ​implique l'​option -n ; aucune commande ne sera exécutée.
 +       [-+]O [option_shopt]
 +                 ​option_shopt ​ est  une  des  options ​ de  l'​interpréteur ​ acceptées ​ par la commande interne shopt (consultez COMMANDES
 +                 ​INTERNES DE L'​INTERPRÉTEUR ci-dessous). Si option_shopt est  présente, ​ -O  crée  cette  option ;  +O  la  détruit. ​ Si
 +                 ​option_shopt n'est pas fournie, les noms et valeurs des options de l'​interpréteur acceptées par shopt sont affichés sur
 +                 la sortie standard. Si l'​option d'​appel est +O, la sortie est affichée dans un format réutilisable en entrée.
 +       ​-- ​       Deux caractères -- indiquent la fin des options et désactivent le traitement des arguments. Tous les arguments après le
 +                 -- sont traités comme des noms de fichiers et paramètres. - est équivalent à --.
 +
 +       ​Bash ​ reconnaît également plusieurs options multicaractères. Ces options doivent, pour être reconnues, apparaître sur la ligne de
 +       ​commande avant les options monocaractères.
 +
 +       ​--debugger
 +              Prend les dispositions pour que le paramétrage du traçage soit exécuté avant que l'​interpréteur démarre. Enclenche le mode
 +              de traçage étendu (consultez ci-dessous la description de l'​option extdebug de la commande interne shopt).
 +       ​--dump-po-strings
 +              Équivalent à -D, mais la sortie est dans le format des fichiers po (objets portables) de l'​outil GNU gettext.
 +       ​--dump-strings
 +              Équivalent à -D.
 +       ​--help Affiche un message d'aide sur la sortie standard et termine avec succès.
 +       ​--init-file fichier
 +       ​--rcfile fichier
 +              Exécuter ​ les  commandes ​ contenues ​ dans  fichier ​ plutôt que celles du fichier d'​initialisation commun à tout le système
 +              /​etc/​bash.bashrc et que le fichier d'​initialisation personnel standard ~/.bashrc si l'​interpréteur est interactif (consul‐
 +              tez APPEL ci-dessous).
 +
 +       ​--login
 +              Équivalent à -l.
 +
 +       ​--noediting
 +              Ne pas utiliser la bibliothèque GNU readline pour lire les lignes de commande, lorsque l'​interpréteur est interactif.
 +
 +       ​--noprofile
 +              Ne  lire  ni  le fichier de configuration générale /​etc/​profile , ni les fichiers d'​initialisation personnels ~/​.bash_pro‐
 +              file, ~/​.bash_login ou ~/.profile. Par défaut, bash lit ces fichiers lorsqu'​il est appelé comme interpréteur de  commandes
 +              de connexion (consultez APPEL ci-dessous).
 +
 +       ​--norc Ne  pas  lire  ou  exécuter le fichier de configuration commun à tout le système /​etc/​bash.bashrc,​ ni le fichier personnel
 +              d'​initialisation ~/.bashrc lorsque l'​interpréteur est interactif. Cette option est activée par  défaut ​ si  l'​interpréteur
 +              est appelé sous le nom sh.
 +
 +       ​--posix
 +              Aligner le comportement de bash sur la norme (mode posix), en ce qui concerne les options dont l'​action par défaut diffère
 +              de la norme POSIX. La section VOIR AUSSI ci-dessous référence un document précisant la façon dont le mode posix affecte le
 +              comportement de bash.
 +
 +       ​--restricted
 +              L'​interpréteur devient restreint (consultez INTERPRÉTEUR RESTREINT ci-dessous).
 +
 +       ​--verbose
 +              Équivalent à -v.
 +
 +       ​--version
 +              Affiche le numéro de version de bash sur la sortie standard et termine avec succès.
 +
 +ARGUMENTS
 +       ​S'​il ​ reste  des  arguments sur la ligne de commande après traitement des options et que ni l'​option -c, ni l'​option -s n'ont été
 +       ​fournies,​ le premier argument est supposé être le nom du fichier dans lequel lire  les  commandes ​ d'​interpréteur. ​ Si  bash  est
 +       ​appelé ​ de  cette façon, le nom du ficher est affecté à $0 et les arguments restants aux autres paramètres positionnels. Bash lit
 +       et exécute les commandes depuis ce fichier, puis termine. L'​état final de bash est l'​état final de la dernière commande ​ exécutée
 +       ​dans ​ le  script. ​ Si aucune commande n'a été exécutée, l'​état final est 0. Une tentative est d'​abord faite de trouver le fichier
 +       dans le répertoire actuel et, si aucun fichier n'est trouvé, l'​interpréteur cherche le script dans les répertoires contenus ​ dans
 +       PATH.
 +
 +APPEL
 +       ​Un ​ interpréteur ​ de commandes est dit de connexion (login shell) si le premier caractère de son argument numéro zéro est un - ou
 +       ​s'​il est appelé avec l'​option --login.
 +
 +       Un interpréteur est interactif s'il est appelé sans argument autre que des options et sans l'​option -c, dont l'​entrée standard et
 +       ​la ​ sortie ​ d'​erreur ​ sont toutes deux connectées à des terminaux (comme déterminé par la fonction isatty(3)), ou s'il est appelé
 +       avec l'​option -i. PS1 est créée et $- contient la lettre i si bash est interactif, ce qui permet à un  script ​ ou  à  un  fichier
 +       ​d’initialisation de tester cet état.
 +
 +       ​Le ​ paragraphe ​ suivant ​ décrit ​ comment ​ bash exécute ses fichiers d'​initialisation. Si un de ces fichiers existe mais n'est pas
 +       ​accessible en lecture, bash signale une erreur. Les tildes sont remplacés par des noms de fichiers comme décrit ​ ci-dessous ​ dans
 +       ​Développement du tilde dans le paragraphe DÉVELOPPEMENTS.
 +
 +       ​Lorsque bash est lancé comme interpréteur de commandes de connexion interactif ou comme interpréteur non interactif avec l'​option
 +       ​--login,​ il lit et exécute tout d'​abord les commandes se trouvant dans le fichier /​etc/​profile si ce fichier existe. ​ Après ​ lec‐
 +       ​ture ​ de ce fichier, il recherche ~/​.bash_profile,​ ~/​.bash_login et ~/.profile, dans cet ordre, puis lit et exécute les commandes
 +       se trouvant dans le premier fichier existant et accessible en lecture. L'​option --noprofile ​ peut  être  utilisée ​ à  l'​appel ​ de
 +       ​l'​interpréteur pour empêcher ce comportement.
 +
 +       ​Lorsqu'​un ​ interpréteur ​ de  commandes ​ de  connexion ​ termine, bash lit et exécute les commandes du fichier ~/​.bash_logout,​ s'il
 +       ​existe.
 +
 +       Quand un interpréteur interactif démarre sans être un interpréteur de commandes de connexion, bash lit et exécute ​ les  commandes
 +       ​se ​ trouvant ​ dans  /​etc/​bash.bashrc ​ et ~/.bashrc s'ils existent. Ce comportement peut être empêché à l'aide de l'​option --norc.
 +       ​L'​option --rcfile fichier forcera bash à lire et exécuter ​ les  commandes ​ dans  fichier ​ plutôt ​ que  dans  /​etc/​bash.bashrc ​ et
 +       ​~/​.bashrc.
 +
 +       Quand bash est démarré de façon non interactive,​ par exemple pour lancer un script, il consulte la variable BASH_ENV dans l'​envi‐
 +       ​ronnement,​ développe son contenu si elle existe et considère cette valeur comme le nom d'un fichier à lire et exécuter. ​ Bash  se
 +       ​comporte comme si la commande suivante était exécutée :
 +              if [ -n "​$BASH_ENV"​ ]; then . "​$BASH_ENV";​ fi
 +       mais la valeur de la variable PATH n'est pas utilisée pour rechercher le fichier.
 +
 +       ​Si ​ bash  est appelé sous le nom sh, il essaye d'​imiter le comportement de démarrage des versions historiques de sh aussi fidèle‐
 +       ment que possible, tout en restant conforme aux normes POSIX. Lorsqu'​il est appelé comme interpréteur de commandes ​ de  connexion
 +       ​interactif ​ ou  non  interactif ​ avec  l'​option ​ --login, il essaye d'​abord de lire et exécuter, dans cet ordre, les commandes de
 +       /​etc/​profile puis de ~/.profile. L'​option --noprofile peut être utilisée pour empêcher ce comportement. Quand il  est  appelé ​ en
 +       tant qu'​interpréteur interactif sous le nom sh, bash consulte la variable ENV, développe sa valeur si elle est définie et utilise
 +       le résultat en tant que nom de fichier à lire et exécuter. Comme un interpréteur appelé sous le nom sh n'​essaye ni  de  lire,  ni
 +       ​d'​exécuter ​ des  commandes ​ d'​un ​ autre  fichier ​ de démarrage, l'​option --rcfile n'a aucun effet. Un interpréteur non interactif
 +       ​appelé sous le nom sh n'​essaie de lire aucun autre fichier d'​initialisation. Quand il est appelé sous le nom sh,  bash  entre  en
 +       mode posix après avoir lu les fichiers d'​initialisation.
 +
 +       ​Quand ​ bash  est  appelé ​ en  mode  posix  comme  avec l'​option --posix sur la ligne de commande, il suit la norme POSIX pour les
 +       ​fichiers de démarrage. Dans ce mode, les interpréteurs interactifs développent la variable ENV et les commandes sont lues et exé‐
 +       ​cutées à partir du fichier dont le nom est la valeur développée. Aucun autre fichier d'​initialisation n'est lu.
 +
 +       ​Bash ​ tente de déterminer s'il est exécuté avec son entrée standard reliée à une connexion réseau, comme quand il est exécuté par
 +       le démon lançant les interpréteurs de commandes à distance, généralement rshd, ou le démon d'​interpréteur sécurisé sshd. Si  bash
 +       ​conclut ​ qu'​il ​ est  exécuté ​ de  cette  façon, ​ il lit et exécute les commandes de /​etc/​bash.bashrc et ~/.bashrc si ces fichiers
 +       ​existent et sont accessibles en lecture. Il n'a pas ce comportement lorsqu'​il est appelé sous le nom  sh.  L'​option ​ --norc ​ peut
 +       ​être ​ utilisée ​ pour  empêcher ce comportement et l'​option --rcfile peut être utilisée pour forcer la lecture d'un autre fichier,
 +       mais rshd et sshd n'​appellent généralement pas l'​interpréteur avec ces options et ne permettent pas de les indiquer.
 +
 +       Si l'​interpréteur est lancé avec un identifiant (de groupe) d'​utilisateur effectif différent de l'​identifiant (de groupe) ​ d'​uti‐
 +       ​lisateur ​ réel  et  si l'​option -p n'est pas fournie, aucun fichier d'​initialisation n'est lu, les fonctions de l'​interpréteur ne
 +       sont pas importées depuis l'​environnement,​ les variables SHELLOPTS, BASHOPTS, CDPATH, et GLOBIGNORE, si présentes dans l'​environ‐
 +       ​nement,​ sont ignorées, et l'​identifiant de l'​utilisateur effectif est configuré à celui de l'​utilisateur réel. Si l'​option -p est
 +       ​fournie à l'​appel,​ le comportement au démarrage est le même mais l'​identifiant d'​utilisateur effectif n'est pas modifié.
 +
 +DÉFINITIONS
 +       Les définitions suivantes sont utilisées dans toute la suite ce document.
 +       ​blanc ​ Une espace ou une tabulation.
 +       ​mot ​   Une suite de caractères considérée ​ comme  une  unité ​ élémentaire ​ par  l'​interpréteur. ​ On  parle  également ​ de  lexème
 +              (« token »).
 +       ​nom ​   Un  mot  ne  contenant ​ que des caractères alphanumériques ou tirets bas (« underscore »), commençant par une lettre ou un
 +              tiret bas. On s'y réfère également sous le terme identificateur.
 +       ​métacaractère
 +              Un caractère qui, non protégé, sépare les mots. Un de ceux-ci :
 +              |  & ; ( ) < > espace tab
 +       ​opérateur de contrôle
 +              Un lexème ayant une fonction de contrôle. C'est l'un des symboles suivants :
 +              || & && ; ;; ( ) | |& <​changement de ligne>
 +
 +MOTS RÉSERVÉS
 +       Les mots réservés sont des mots qui ont une signification spéciale pour l'​interpréteur. Les mots  suivants ​ sont  reconnus ​ comme
 +       ​réservés lorsqu'​ils ne sont pas protégés et sont soit le premier mot d'une commande simple (consultez GRAMMAIRE DE L'​INTERPRÉTEUR
 +       ​ci-dessous),​ soit le troisième mot d'une commande case ou for :
 +
 +       ! case  coproc ​ do done elif else esac fi for function if in select then until while { } time [[ ]]
 +
 +GRAMMAIRE DE L'​INTERPRÉTEUR
 +   ​Commandes simples
 +       Une commande simple est une suite d'​affectations facultatives de variables, suivie de mots séparés par des blancs et de  redirec‐
 +       ​tions, ​ et terminée par un opérateur de contrôle. Le premier mot indique la commande à exécuter et est passé comme argument zéro.
 +       Les mots restants sont transmis comme arguments à la commande appelée.
 +
 +       La valeur renvoyée par une commande simple est son état final ou 128+n si la commande a été terminée par le signal n.
 +
 +   ​Conduites
 +       Une conduite (« pipeline ») est une suite d'une ou plusieurs commandes séparées par un des opérateurs de contrôle ​ |  ou  |&​. ​ Le
 +       ​format d'une conduite est :
 +
 +              [time [-p]] [!] commande_1 [ [|⎪|&​] commande_2 ... ]
 +
 +       La sortie standard de la commande_1 est connectée par un tube à l'​entrée standard de la commande_2. Cette connexion est effectuée
 +       avant toute redirection indiquée par la commande elle-même (consultez REDIRECTIONS ci-dessous). Si  |& ​ est  utilisé, ​ la  sortie
 +       ​d'​erreur ​ standard ​ de  la  commande_1, en plus de sa sortie standard, est connectée à l'​entrée standard de la commande_2 dans le
 +       tube ; c'est un raccourci pour 2>&1 |. Cette redirection implicite de la sortie d'​erreur standard vers  la  sortie ​ standard ​ est
 +       ​réalisée après toute redirection précisée par la commande.
 +
 +       ​L'​état renvoyé par une conduite est l'​état final de la dernière commande, à moins que l'​option pipefail soit activée. Si pipefail
 +       est activée, l'​état renvoyé par la conduite est la valeur de la dernière commande (la plus à droite) à terminer avec un état dif‐
 +       ​férent ​ de  zéro ou zéro si toutes les commandes se terminent avec succès. Si le mot réservé ! précède une conduite, l'​état final
 +       de cette conduite sera la négation logique de l'​état final tel que décrit ci-dessus. L'​interpréteur attend que  toutes ​ les  com‐
 +       ​mandes de la conduite soient terminées avant de renvoyer une valeur.
 +
 +       ​Si ​ le  mot  réservé ​ time  précède une conduite, les temps passés par le programme en modes utilisateur et système sont indiqués
 +       quand la conduite se termine. L'​option -p modifie le format de sortie pour celui indiqué par POSIX. Quand l'​interpréteur ​ est  en
 +       mode posix, il ne reconnaît pas time comme un mot réservé si le lexème suivant commence par un « - ». La variable TIMEFORMAT peut
 +       ​contenir une chaîne de format indiquant comment les informations de chronométrage doivent être affichées ;  consultez ​ ci-dessous
 +       la description de TIMEFORMAT dans Variables de l'​interpréteur.
 +
 +       ​Quand ​ l'​interpréteur ​ est  en  mode posix, time peut être suivi d'un changement de ligne. Dans ce cas, l'​interpréteur affiche le
 +       temps utilisateur et système total consommé par l'​interpréteur et ses fils. La variable TIMEFORMAT peut être utilisée pour  indi‐
 +       quer le format des informations de temps.
 +
 +       ​Chaque commande dans une conduite est exécutée comme un processus indépendant (c'​est-à-dire dans un sous-interpréteur).
 +
 +   ​Listes
 +       ​Une ​ liste est une suite d'une ou plusieurs conduites séparées par l'un des opérateurs ;, &, && ou || et facultativement terminée
 +       par ;, & ou <​changement de ligne>.
 +
 +       Dans cette liste d'​opérateurs,​ && et || ont une priorité identique, suivis par ; et &, qui ont également une priorité identique.
 +
 +       Une suite d'un ou plusieurs changements de ligne peut apparaître dans une liste à la place d'un point-virgule pour délimiter ​ les
 +       ​commandes.
 +
 +       ​Si ​ une  commande ​ se termine par l'​opérateur de contrôle &, l'​interpréteur l'​exécute en arrière-plan,​ dans un sous-interpréteur.
 +       ​L'​interpréteur n'​attend pas que la commande se termine et l'​état renvoyé est 0. Les commandes séparées par un  ;  sont  exécutées
 +       ​successivement, ​ l'​interpréteur attend que chaque commande se termine tour à tour. L'​état renvoyé est l'​état final de la dernière
 +       ​commande exécutée.
 +
 +       Les listes ET et OU sont des suites d'une ou plusieurs conduites séparées respectivement par les opérateurs de contrôle && et ||.
 +       Les listes ET et OU sont exécutées avec associativité à gauche. Une liste ET est de la forme
 +
 +              commande_1 && commande_2
 +
 +       ​commande_2 est exécutée si, et seulement si, commande_1 renvoie un état final de zéro.
 +
 +       Une liste OU a la forme
 +
 +              commande_1 || commande_2
 +
 +       ​commande_2 ​ est  exécutée si et seulement si commande_1 renvoie un état final différent de zéro. L'​état renvoyé par des listes de
 +       ET et de OU est l'​état final de la dernière commande exécutée dans la liste.
 +
 +   ​Commandes composées
 +       Une commande composée est l'une des constructions suivantes. Dans la plupart des cas, une liste dans une description de  commande
 +       ​pourrait ​ être  séparée du reste de la commande par un ou plusieurs changements de ligne, et pourrait être suivie d’un changement
 +       de ligne à la place d’un point-virgule.
 +
 +       ​(liste)
 +              liste est exécutée dans un sous-interpréteur (consultez ENVIRONNEMENT D'​EXÉCUTION DES COMMANDES ci-dessous). Les  affecta‐
 +              tions  de  variables ​ et les commandes internes qui affectent l'​environnement de l'​interpréteur n'ont pas d'​effet une fois
 +              que la commande se termine. L'​état renvoyé est l'​état final de la liste.
 +
 +       { liste; }
 +              liste est simplement exécutée avec l'​environnement de l'​interpréteur en cours. liste doit se terminer par un changement de
 +              ligne  ou  un  point-virgule. ​ Cette  construction est connue sous le nom de commandes groupées. L'​état renvoyé est l'​état
 +              final de la liste. Remarquez que contrairement aux métacaractères ( et ), { et } sont des mots  réservés ​ qui  ne  doivent
 +              apparaître ​ que  là  où un mot réservé peut être reconnu. Puisqu'​ils ne conduiront pas à un découpage en mots, ils doivent
 +              être séparés de la liste par un blanc ou un autre métacaractère de l'​interpréteur.
 +
 +       ​((expression))
 +              L'​expression est évaluée selon les règles décrites ci-dessous dans ÉVALUATION ARITHMÉTIQUE. Si la valeur ​ arithmétique ​ de
 +              l'​expression ​ est différente de zéro, l'​état renvoyé est 0 ; sinon l'​état renvoyé est 1. C'est exactement équivalent à let
 +              "​expression"​.
 +
 +       [[ expression ]]
 +              Renvoie un état de 0 ou 1 selon l'​évaluation de la condition expression. ​ Les  conditions ​ sont  composées ​ de  primitives
 +              décrites ​ ci-dessous ​ dans  CONDITIONS. Le découpage en mots et le développement des chemins ne sont pas effectués sur les
 +              mots entre [[ et ]] ; le développement des tildes, des paramètres,​ des variables, le développement arithmétique, ​ la  sub‐
 +              stitution ​ de commande et de processus, ainsi que la suppression des protections sont effectués. Les opérateurs condition‐
 +              nels comme -f ne doivent pas être protégés afin d'​être reconnus comme primitives.
 +
 +              Lorsqu'​ils sont utilisés avec [[, les opérateurs < et > ordonnent d'un point  de  vue  lexicographique ​ en  utilisant ​ les
 +              paramètres linguistiques régionaux actuels.
 +
 +       ​Consultez ​ la description de la commande interne test (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous) pour la gestion
 +       des paramètres (c'​est-à-dire des paramètres manquants).
 +
 +       Quand les opérateurs == et != sont utilisés, la chaîne placée à droite de l'​opérateur est considérée comme étant un motif dont la
 +       ​correspondance ​ est recherchée selon les règles décrites ci-dessous dans Motifs génériques,​ comme si l’option extglob de l’inter‐
 +       ​préteur était activée. L’opérateur = est équivalent à ==. Si l'​option d'​interpréteur nocasematch est activée, la mise en  corres‐
 +       ​pondance ​ est  effectuée ​ sans  tenir compte de la casse (différence majuscule/​minuscule) des caractères alphabétiques. La valeur
 +       ​renvoyée est 0 si les chaînes correspondent (==), ou ne correspondent pas (!=), au motif et 1 sinon. Toute partie du  motif  peut
 +       être protégée pour forcer la partie protégée à correspondre en tant que chaîne.
 +
 +       ​Un ​ opérateur ​ binaire supplémentaire,​ =~, est disponible, avec la même priorité que == et !=. Lorsqu'​il est utilisé, la chaîne à
 +       ​droite de l'​opérateur est considérée comme une expression rationnelle étendue et est mise en correspondance en conséquence (comme
 +       avec regex(3)). La valeur renvoyée est 0 si la chaîne correspond au motif et 1 si elle ne correspond pas. Si l'​expression ration‐
 +       nelle n'est pas syntaxiquement correcte, la valeur renvoyée de l'​expression conditionnelle ​ est  2.  Si  l'​option ​ d'​interpréteur
 +       ​nocasematch ​ est  activée, la mise en correspondance est effectuée sans tenir compte de la casse. Toute partie du motif peut être
 +       ​protégée pour forcer la partie protégée à correspondre en tant que chaîne. Les expressions entre crochets des expressions ration‐
 +       ​nelles ​ doivent être traitées prudemment car les caractères de protection habituels perdent leur signification entre crochets. Si
 +       le motif est stocké dans une variable de l’interpréteur,​ la protection de développement de variable force le motif entier à  cor‐
 +       ​respondre en tant que chaîne. Les sous-chaînes mises en correspondance avec des sous-expressions entre parenthèses dans l'​expres‐
 +       sion rationnelle sont sauvegardées dans la variable tableau BASH_REMATCH. L'​élément d'​indice 0 de BASH_REMATCH est la  partie ​ de
 +       la chaîne correspondant à l'​expression rationnelle complète. L'​élément d'​indice n de BASH_REMATCH est la partie de la chaîne cor‐
 +       ​respondant à la n-ième sous-expression entre parenthèses.
 +
 +       Les expressions peuvent être combinées en utilisant les opérateurs suivants, décrits par ordre de priorité décroissante :
 +
 +              ( expression )
 +                     ​Renvoie la valeur de l'​expression. Cela peut être utilisé pour surpasser la priorité normale des opérateurs.
 +              ! expression
 +                     Vrai si expression est fausse.
 +              expression1 && expression2
 +                     Vrai si expression1 et expression2 sont toutes les deux vraies.
 +              expression1 || expression2
 +                     Vrai si expression1 ou expression2 est vraie.
 +
 +              Les opérateurs && et || n'​évaluent pas expression2 si la valeur de expression1 suffit à déterminer la valeur renvoyée ​ par
 +              la condition tout entière.
 +
 +       for nom [ [ in [ mot ... ] ] ; ] do liste ; done
 +              La  liste  de mots suivant in est développée,​ produisant une liste d'​éléments. La variable nom prend tour à tour la valeur
 +              de chacun des éléments et liste est exécutée à chaque fois. Si in mot est omis, la commande for exécute la liste une  fois
 +              pour chacun des paramètres positionnels existants (consultez PARAMÈTRES ci-dessous). L'​état renvoyé est l'​état final de la
 +              dernière commande exécutée. Si le développement des éléments suivant in conduit à une liste vide,  aucune ​ commande ​ n'est
 +              exécutée et l'​état renvoyé est 0.
 +
 +       for (( expr1 ; expr2 ; expr3 )) ; do liste ; done
 +              L'​expression ​ arithmétique ​ expr1  est  d'​abord évaluée selon les règles décrites ci-dessous sous ÉVALUATION ARITHMÉTIQUE.
 +              L'​expression arithmétique expr2 est ensuite évaluée répétitivement jusqu'​à valoir zéro. Chaque fois que expr2 est  évaluée
 +              en  une valeur différente de zéro, liste est exécutée et l'​expression arithmétique expr3 est évaluée. Si l'une des expres‐
 +              sions est omise, elle est considérée comme s'​évaluant à 1. La valeur renvoyée est l'​état final  de  la  dernière ​ commande
 +              dans liste qui est exécutée ou faux si l'une des expressions est incorrecte.
 +
 +       ​select nom [ in mot ] ; do liste ; done
 +              La  liste  de  mots  à  la suite de in est développée,​ produisant une liste d'​éléments. L'​ensemble des mots développés est
 +              imprimé sur la sortie d'​erreur standard, chacun précédé par un nombre. Si in mot est  omis,  les  paramètres ​ positionnels
 +              sont  imprimés (consultez PARAMÈTRES ci-dessous). L'​invite PS3 est affichée et une ligne est lue depuis l'​entrée standard.
 +              Si la ligne est constituée d'un nombre correspondant à l'un des mots affichés, alors ce mot est affecté à la valeur de  la
 +              variable ​ nom. Si la ligne est vide, les mots et l'​invite sont affichés à nouveau. Si une fin de fichier (EOF) est lue, la
 +              commande se termine. Toute autre valeur lue force la variable nom à être définie à NULL. La ligne lue est  conservée ​ dans
 +              la  variable ​ REPLY. ​ La liste est exécutée après chaque sélection, jusqu'​à ce qu'une commande break soit atteinte. L'​état
 +              final de select est l'​état final de la dernière commande exécutée dans la liste ou zéro si aucune commande n'a été  exécu‐
 +              tée.
 +
 +       case mot in [ [(] motif [ | motif ] ... ) liste ;; ] ... esac
 +              Une commande case commence d'​abord par développer le mot, puis essaye de le mettre en correspondance tour à tour avec cha‐
 +              cun des motifs en utilisant les mêmes règles que pour le développement des chemins (consultez ci-dessous Développement des
 +              chemins). ​ Le  mot est développé en utilisant le développement du tilde, le développement des paramètres et des variables,
 +              la substitution arithmétique,​ la substitution de commande, la substitution de processus et la suppression des protections.
 +              Chaque ​ motif  examiné ​ est  développé ​ en  utilisant ​ le  développement ​ du tilde, le développement des paramètres et des
 +              variables, la substitution arithmétique,​ la substitution de commande et la substitution de processus. Si l'​option d'​inter‐
 +              préteur ​ nocasematch ​ est  activée, ​ la  mise en correspondance est effectuée sans tenir compte de la casse des caractères
 +              alphabétiques. Quand une correspondance est trouvée, la liste associée est exécutée. Dès qu'un motif correct a été trouvé,
 +              il  n'​y ​ a plus d'​autre essai si l'​opérateur ;; est utilisé. Si ;& est utilisé au lieu de ;;, l'​exécution continue avec la
 +              liste associée au jeu de motifs suivant. Si ;;& est utilisé au lieu de ;;, l'​interpréteur essaye la liste de  motifs ​ sui‐
 +              vante, ​ si  elle existe, et exécute toute liste associée à un motif correspondant. L'​état final est zéro si aucun motif ne
 +              correspond. Sinon il est l'​état final de la dernière commande exécutée dans la liste.
 +
 +       if liste; then liste; [ elif liste; then liste; ] ... [ else liste; ] fi
 +              La liste du if est exécutée. Si son état final est zéro, la liste du then est exécutée. Sinon, chacune des listes des elif
 +              est  exécutée ​ tour  à  tour  et si son état final est zéro, la liste du then associé est exécutée et la commande termine.
 +              Sinon, la liste du else, si présente, est exécutée. L'​état final est l'​état final de la dernière commande exécutée ou zéro
 +              si aucune condition n'a été satisfaite.
 +
 +       while liste-1; do liste-2; done
 +       until liste-1; do liste-2; done
 +              La commande while répète la liste-2 tant que la dernière commande de la liste-1 renvoie un état final de zéro. La commande
 +              until est identique à la commande while, sauf que le test est inversé ; la liste-2 est exécutée tant que la dernière ​ com‐
 +              mande de la liste-1 renvoie un état final différent de zéro. L'​état final des commandes while et until est l'​état final de
 +              la dernière commande exécutée dans la liste-2 ou zéro si aucune commande n'a été exécutée.
 +
 +   ​Coprocessus
 +       Un coprocessus est une commande d'​interpréteur précédée par le mot réservé coproc. Un coprocessus est exécuté de façon asynchrone
 +       ​dans ​ un  sous-interpréteur, ​ comme si la commande se terminait par l'​opérateur de contrôle &, avec un tube bidirectionnel établi
 +       entre l'​interpréteur d'​exécution et le coprocessus.
 +
 +       Le format d'un coprocessus est :
 +
 +              coproc [NOM] commande [redirections]
 +
 +       Un coprocessus appelé NOM est créé. Si NOM n'est pas fourni, le nom par défaut est COPROC. NOM ne doit pas être  fourni ​ si  com‐
 +       ​mande ​ est  une  commande simple (voir ci-dessus) ; sinon, il est interprété comme le premier mot d'une commande simple. Quand le
 +       ​coprocessus est exécuté, l'​interpréteur crée une variable tableau (consultez Tableaux ci-dessous) appelée NOM dans le contexte de
 +       ​l'​interpréteur ​ d'​exécution. La sortie standard de commande est connecté par un tube à un descripteur de fichier dans l'​interpré‐
 +       teur d'​exécution,​ et ce descripteur de fichier est affecté à NOM[0]. L'​entrée standard de commande est connecté par un tube à  un
 +       ​descripteur ​ de  fichier ​ dans  l'​interpréteur d'​exécution,​ et ce descripteur de fichier est affecté à NOM[1]. Ce tube est établi
 +       avant toute redirection indiquée par la commande ​ (consultez REDIRECTIONS ci-dessous). Les descripteurs de fichier ​ peuvent ​ être
 +       ​utilisés comme arguments aux commandes d'​interpréteur et redirections utilisant les développements standards de mot. Les descrip‐
 +       teurs de fichier ne sont pas disponibles dans les sous-interpréteurs. L'​identifiant du processus (PID) de l'​interpréteur engendré
 +       ​pour ​ exécuter ​ le coprocessus est la valeur disponible de la variable NAME_PID. La commande interne wait peut être utilisée pour
 +       ​attendre que le coprocessus soit terminé.
 +
 +       ​Puisque le coprocessus est créé comme une commande asynchrone, la commande coproc se termine toujours avec succès. L'​état renvoyé
 +       ​d'​un coprocessus est l'​état final de commande.
 +
 +   ​Définitions des fonctions de l'​interpréteur
 +       Une fonction de l'​interpréteur est un objet qui est appelé comme une commande simple et qui exécute une commande composée avec un
 +       ​nouveau jeu de paramètres positionnels. Les fonctions de l'​interpréteur sont déclarées de la façon suivante :
 +
 +       nom () commande-composée [redirection]
 +       ​function nom [()] commande-composée [redirection]
 +              Cela définit une fonction possédant le nom mentionné. Le mot réservé function est facultatif. S'il est fourni, les  paren‐
 +              thèses ​ sont  facultatives. Le corps de la fonction est la commande composée commande-composée (consultez Commandes compo‐
 +              sées ci-dessus). Cette commande est généralement une liste de commandes entre { et }, mais peut être n'​importe quelle com‐
 +              mande  décrite dans Commandes composées ci-dessus. La commande-composée est exécutée chaque fois que nom est indiqué comme
 +              le nom d'une commande normale. En mode posix, nom ne peut pas être le nom d’une des commandes internes spéciales de  POSIX
 +              (« special ​ builtins »).  Toutes ​ les  redirections ​ (consultez REDIRECTIONS ci-dessous) indiquées lorsqu'​une fonction est
 +              définie sont effectuées lorsque la fonction est exécutée. L'​état final d'une définition de  fonction ​ est  zéro, ​ à  moins
 +              qu'​une ​ erreur ​ de  syntaxe ​ ne se produise ou qu'une fonction en lecture seule n'​existe déjà avec le même nom. Lorsque la
 +              fonction est exécutée, l'​état final est celui de la dernière commande exécutée dans le corps  de  la  fonction ​ (consultez
 +              FONCTIONS ci-dessous).
 +
 +COMMENTAIRES
 +       Dans un interpréteur non interactif ou dans un interpréteur interactif avec l'​option interactive_comments activée par la commande
 +       ​interne shopt (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous),​ un mot commençant par # conduit à ignorer ​ ce  mot  et
 +       ​tous ​ les caractères restants sur la ligne. Un interpréteur interactif sans l'​option interactive_comments n'​autorise pas les com‐
 +       ​mentaires. L'​option interactive_comments est activée par défaut dans les interpréteurs interactifs.
 +
 +PROTECTIONS
 +       Les protections (« quoting ») permettent de forcer l'​interpréteur à ignorer la signification spéciale de certains ​ caractères ​ ou
 +       ​mots. ​ Les protections peuvent être utilisées pour désactiver le traitement des caractères spéciaux, éviter la reconnaissance des
 +       mots réservés ou empêcher le développement des paramètres.
 +
 +       Tous les métacaractères décrits ci-dessus dans DÉFINITIONS ont des significations spéciales pour l'​interpréteur et  doivent ​ être
 +       ​protégés pour ne représenter que leur propre caractère.
 +
 +       ​Lorsque ​ les outils de développement de l'​historique des commandes sont utilisés (consultez DÉVELOPPEMENT DE L'​HISTORIQUE ci-des‐
 +       ​sous),​ le caractère de développement de l'​historique,​ généralement !, doit être protégé pour éviter le développement de  l'​histo‐
 +       ​rique.
 +
 +       ​Il ​ y a trois mécanismes de protection : le caractère de protection, les guillemets simples (« single quotes ») et les guillemets
 +       ​doubles (« double quotes »).
 +
 +       Le caractère de protection est une contre-oblique (\) non protégée. Il préserve la valeur littérale du caractère qui le  suit,  à
 +       ​l'​exception ​ du  <​changement ​ de ligne>. Si un couple \<​changement de ligne> apparaît et si la contre-oblique n'est pas elle-même
 +       ​protégée,​ l'​ensemble \<​changement de ligne> est considéré comme une continuation de ligne (c'​est-à-dire ​ qu'​il ​ est  supprimé ​ du
 +       flux d'​entrée et ignoré en pratique).
 +
 +       ​Encadrer ​ des  caractères ​ entre  des  guillemets ​ simples préserve la valeur littérale de chacun des caractères entre guillemets
 +       ​simples. Un guillemet simple ne peut pas être placé entre deux guillemets simples, même s'il est précédé d'une contre-oblique.
 +
 +       ​Encadrer des caractères entre des guillemets doubles préserve la valeur littérale de chacun des  caractères ​ sauf  $,  `,  \  et,
 +       ​lorsque ​ le  développement ​ de  l'​historique est activé, !. Les caractères $ et ` conservent leurs significations spéciales entre
 +       ​guillemets doubles. La contre-oblique ne conserve sa signification spéciale que lorsqu'​elle est suivie par  l'​un ​ des  caractères
 +       ​suivants : $, `, ", \ ou <​changement de ligne>. Un guillemet double peut être protégé entre deux guillemets doubles en étant pré‐
 +       ​cédé d'une contre-oblique. S'il est activé, le développement de l'​historique sera effectué, à moins qu'​un ​ !  apparaissant ​ entre
 +       ​guillemets doubles ne soit protégé par une contre-oblique. La contre-oblique précédant le ! n'est pas supprimée.
 +
 +       ​Les ​ caractères ​ spéciaux ​ * et @ ont des significations spéciales lorsqu'​ils se trouvent entre des guillemets doubles (consultez
 +       ​PARAMÈTRES ci-dessous).
 +
 +       Les mots de la forme $'​chaîne'​ sont traités spécialement. Le mot est  développé ​ en  chaîne ​ avec  les  caractères ​ protégés ​ par
 +       ​contre-oblique ​ remplacés ​ comme  indiqué par le standard ANSI C. Les suites de protection par contre-oblique,​ si présentes, sont
 +       ​décodées comme suit :
 +              \a     ​alerte (alarme) ;
 +              \b     ​effacement arrière (« backspace ») ;
 +              \e
 +              \E     ​caractère de protection ;
 +              \f     saut de page (« form feed ») ;
 +              \n     saut de ligne (« new line ») ;
 +              \r     ​retour chariot (« carriage return ») ;
 +              \t     ​tabulation horizontale ;
 +              \v     ​tabulation verticale ;
 +              \\     ​contre-oblique ;
 +              \' ​    ​guillemet simple ;
 +              \" ​    ​guillemet double ;
 +              \nnn   le caractère 8 bits dont la valeur octale est nnn (un à trois chiffres) ;
 +              \xHH   le caractère 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ;
 +              \uHHHH le caractère Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHH (un à quatre chiffres hexadécimaux) ;
 +              \UHHHHHHHH
 +                     le caractère Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHHHHHH (un à huit chiffres hexadécimaux) ;
 +              \cx    un caractère contrôle-x.
 +
 +       Le résultat développé est protégé par des guillemets simples comme si le symbole dollar n'​avait pas été présent.
 +
 +       Une chaîne entre guillemets doubles précédée d'un symbole dollar ($"​chaîne"​) conduira à la traduction ​ de  la  chaîne ​ selon  les
 +       ​paramètres ​ linguistiques régionaux en vigueur. Si les paramètres linguistiques régionaux actuels est C ou POSIX, le symbole dol‐
 +       lar est ignoré. Si la chaîne est traduite et remplacée, le résultat est protégé par des guillemets doubles.
 +
 +PARAMÈTRES
 +       Un paramètre est une entité permettant de stocker des valeurs. Il peut être un nom, un  nombre ​ ou  un  des  caractères ​ spéciaux
 +       ​décrits ​ ci-dessous, ​ dans Paramètres spéciaux. Une variable est un paramètre noté par un nom. Une variable possède une valeur et
 +       zéro ou plusieurs attributs. Les attributs sont affectés en utilisant la commande interne declare (consultez ​ declare ​ dans  COM‐
 +       ​MANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous).
 +
 +       ​Un ​ paramètre ​ est  créé ​ si  une valeur lui a été affectée. La chaîne NULL est une valeur correcte. Une fois qu'une variable est
 +       ​créée,​ elle ne peut être détruite qu'en utilisant la commande interne ​ unset  (consultez ​ COMMANDES ​ INTERNES ​ DE  L'​INTERPRÉTEUR
 +       ​ci-dessous).
 +
 +       Une variable peut recevoir une valeur par une affectation de la forme
 +
 +              nom=[valeur]
 +
 +       Si aucune valeur n'est indiquée, une chaîne NULL est affectée à la variable. Toutes les valeurs sont sujettes au développement du
 +       ​tilde,​ des paramètres et des variables, à la substitution de commande, au développement arithmétique et à la suppression des pro‐
 +       ​tections ​ (consultez ​ DÉVELOPPEMENTS ci-dessous). Si une variable a son attribut integer configuré, alors la valeur est soumise à
 +       ​l'​évaluation arithmétique,​ même si la syntaxe $((...)) n'est pas utilisée (consultez Développement arithmétique ​ ci-dessous). ​ Le
 +       ​découpage ​ en mots n'est pas effectué, à l'​exception de "​$@"​ comme expliqué ci-dessous dans Paramètres spéciaux. Le développement
 +       des chemins n'est pas effectué. Les affectations peuvent également apparaître comme argument des commandes ​ internes ​ suivantes :
 +       ​alias,​ declare, typeset, export, readonly et local. En mode posix, ces commandes internes pourraient apparaître dans une commande
 +       ​après une ou plusieurs instances de la commande interne command et conserver ces propriétés d’affectation.
 +
 +       Dans le contexte où une affectation affecte une valeur à une variable de l'​interpréteur ou à un indice de tableau, l'​opérateur +=
 +       ​peut ​ être  utilisé ​ pour ajouter ou additionner à la précédente valeur de la variable. Lorsque l'​opérateur += est appliqué à une
 +       ​variable dont l'​attribut integer (entier) a été positionné,​ la valeur est évaluée comme une expression arithmétique et  addition‐
 +       ​née ​ à  la  valeur actuelle de la variable qui est également évaluée. Lorsque += est appliqué à une variable tableau en utilisant
 +       ​l'​affectation composée (consultez Tableaux ci-dessous),​ la valeur de la variable n'est pas détruite (comme elle l'​est ​ lorsque ​ =
 +       ​est ​ utilisé) ​ et  les  nouvelles valeurs sont ajoutées au tableau, en commençant à l'​indice maximal du tableau plus un (pour les
 +       ​tableaux indicés) ou ajoutées comme un couple clef valeur pour un tableau associatif. Lorsque ​ l'​opérateur ​ est  appliqué ​ à  une
 +       ​variable de type chaîne, la valeur est développée et concaténée en valeur de la variable.
 +
 +       ​L’attribut ​ nameref ​ peut être affecté à une variable en utilisant l’option -n des commandes internes declare et local (consultez
 +       la description des commandes declare et local ci-dessous) pour créer une nameref ou une référence vers une autre  variable. ​ Cela
 +       ​permet ​ aux variables d’être manipulées indirectement. À chaque fois qu’une variable nameref est référencée ou affectée, l’opéra‐
 +       tion est en fait réalisée sur la variable indiquée par la valeur de la variable nameref. nameref est généralement ​ utilisée ​ dans
 +       ​des ​ fonctions ​ d’interpréteur ​ pour référencer une variable dont le nom est passé en argument de la fonction. Par exemple, si un
 +       nom de variable est passé en premier argument à une fonction d’interpréteur,​ exécuter
 +              declare -n ref=$1
 +       dans la fonction crée une variable nameref ref dont la valeur est le nom de la variable passée en  premier ​ argument. ​ Les  réfé‐
 +       ​rences ​ et affectations de ref sont traitées comme des références et affectations sur la variable dont le nom a été passé par $1.
 +       Si la variable de contrôle dans une boucle for a l’attribut nameref, la liste de mots peut être une liste de  variables ​ d’inter‐
 +       ​préteur ​ et une référence de nom est établie pour chaque mot de la liste, tour à tour, lorsque la boucle est exécutée. L’attribut
 +       -n ne peut pas être donné aux variables de type tableau. Cependant, les variables nameref peuvent ​ référencer ​ des  variables ​ de
 +       ​type ​ tableau ​ et des variables de type tableau indicé. nameref peut être détruit en utilisant l’option -n de la commande interne
 +       ​unset. Sinon, si unset est exécuté avec le nom d’une variable nameref en argument, la variable référencée par la variable nameref
 +       sera détruite.
 +
 +   ​Paramètres positionnels
 +       ​Un ​ paramètre ​ positionnel ​ est  un paramètre noté par un ou plusieurs chiffres (à l'​exception du chiffre 0 seul). Les paramètres
 +       ​positionnels sont affectés avec les arguments de l'​interpréteur lors de son appel. Ils peuvent être réaffectés avec  la  commande
 +       ​interne set. On ne peut pas utiliser les affectations pour les paramètres positionnels. Ils sont temporairement remplacés lors de
 +       ​l'​exécution d'une fonction de l'​interpréteur (consultez FONCTIONS ci-dessous).
 +
 +       Un paramètre positionnel constitué de plusieurs chiffres doit être encadré par des accolades lors de son développement (consultez
 +       ​DÉVELOPPEMENTS ci-dessous).
 +
 +   ​Paramètres spéciaux
 +       ​L'​interpréteur ​ traite plusieurs paramètres spécifiquement. Ces paramètres peuvent uniquement être consultés, il n'est pas permis
 +       de leur affecter une valeur.
 +       ​* ​     Se développe en ensemble des paramètres positionnels,​ commençant par le premier. Quand le développement ​ n’est ​ pas  entre
 +              guillemets ​ doubles, tous les paramètres positionnels se développent en mots séparés. Dans les contextes où il sont réali‐
 +              sés, ces mots sont soumis à d’autres découpages de mot et développements de chemin. ​ Quand  le  développement ​ se  produit
 +              entre  des  guillemets ​ doubles, * se transforme en un seul mot constitué de la valeur de tous les paramètres positionnels
 +              séparés par le premier caractère de la variable spéciale IFS. C'​est-à-dire que "​$*"​ est équivalent à "​$1c$2c...",​ où c est
 +              le premier caractère de la valeur de la variable IFS. Si IFS est inexistante,​ les paramètres sont séparés par des espaces.
 +              Si IFS est NULL, les paramètres sont accolés sans séparateurs.
 +       ​@ ​     Se développe en ensemble des paramètres positionnels,​ commençant par le premier. ​ Quand  le  développement ​ a  lieu  entre
 +              guillemets ​ doubles, ​ chaque ​ paramètre ​ se développe en un mot distinct. C'​est-à-dire que "​$@"​ est équivalent à "​$1"​ "​$2"​
 +              .... Si le développement des guillemets doubles survient dans un mot, le développement du premier paramètre est  accolé ​ à
 +              la première partie du mot d'​origine et le développement du dernier paramètre est accolé à la dernière partie du mot d'​ori‐
 +              gine. Quand il n'y a pas de paramètres positionnels,​ "​$@"​ et $@ ne se développent en rien (c'​est-à-dire qu'​ils ​ sont  sim‐
 +              plement éliminés).
 +       # ​     Correspond au nombre de paramètres positionnels,​ en base décimale.
 +       ? ​     Se développe en état final de la dernière conduite exécutée au premier plan.
 +       ​- ​     Est remplacé par la liste des options de l'​interpréteur indiquées durant l'​appel,​ configurées avec la commande interne set
 +              ou celles créées par l'​interpréteur lui-même (comme avec l'​option -i).
 +       ​$ ​     Se transforme en PID de l'​interpréteur. Dans un sous-interpréteur (), il se transforme en PID de l'​interpréteur et non pas
 +              du sous-interpréteur.
 +       ​! ​     Se  transforme ​ en  PID  de la dernière tâche placée en arrière-plan,​ soit exécutée comme une commande asynchrone, soit en
 +              utilisant la commande interne bg (consultez CONTRÔLE DES TÂCHES ci-dessous).
 +       ​0 ​     Se développe en nom de l'​interpréteur ou du script. Ce paramètre est créé lors de l'​initialisation de  l'​interpréteur. ​ Si
 +              bash  est  appelé ​ avec  un  fichier de commandes, $0 correspond au nom de ce fichier. Si bash est lancé avec l'​option -c,
 +              alors $0 contient le premier argument, s'il y en a un, après la chaîne ​ de  commandes ​ à  exécuter. ​ Sinon, ​ ce  paramètre
 +              contient le nom de fichier utilisé pour appeler bash, comme indiqué par l'​argument zéro.
 +       ​_ ​     Au  lancement ​ de  l'​interpréteur, ​ contient le chemin d'​accès absolu utilisé pour appeler l'​interpréteur,​ ou le script en
 +              cours d'​exécution tel qu'il est passé dans l'​environnement ou dans la liste des arguments. Devient le dernier argument ​ de
 +              la  commande ​ précédente,​ après développement. Contient également le chemin d'​accès complet de chaque commande exécutée et
 +              se retrouve dans l'​environnement exporté à cette commande. Lors de la vérification de l'​arrivée de courrier, ​ contient ​ le
 +              nom du fichier de courrier en cours de consultation.
 +
 +   ​Variables de l'​interpréteur
 +       Les variables suivantes sont créées par l'​interpréteur :
 +
 +       ​BASH ​  Se développe en chemin d'​accès complet à l'​instance actuelle de bash.
 +       ​BASHOPTS
 +              Liste  des  options activées de l'​interpréteur,​ séparées par des deux-points « : ». Chaque mot de la liste est un argument
 +              correct pour l'​option -s de la commande interne shopt (consultez COMMANDES INTERNES ​ DE  L'​INTERPRÉTEUR ​ ci-dessous). ​ Les
 +              options ​ apparaissant dans BASHOPTS sont celles indiquées comme actives par shopt. Si cette variable est dans l'​environne‐
 +              ment au lancement de bash, chaque option de la liste est activée ​ avant  de  lire  les  fichiers ​ d’initialisation. ​ Cette
 +              variable est en lecture seule.
 +       ​BASHPID
 +              Se transforme en PID de l'​interpréteur bash actuel. Diffère de $$ sous certaines conditions, comme dans les sous-interpré‐
 +              teurs ne nécessitant pas que bash soit réinitialisé.
 +       ​BASH_ALIASES
 +              Une variable de type tableau associatif dont les éléments correspondent à une liste interne d'​alias comme celle gérée ​ par
 +              la  commande ​ interne ​ alias. Les éléments ajoutés à ce tableau apparaissent dans la liste d'​alias ; la destruction d'​élé‐
 +              ments du tableau implique le retrait des alias de la liste.
 +       ​BASH_ARGC
 +              Une variable de type tableau contenant le nombre de paramètres de chaque trame de la pile d'​appel d'​exécution de  l'​inter‐
 +              préteur ​ bash actuel. Le nombre de paramètres du sous-programme actuel (fonction de l'​interpréteur ou script exécuté par .
 +              ou source) est au sommet de la pile. Lorsqu'​un sous-programme est exécuté, le nombre de paramètres passés est  placé ​ dans
 +              BASH_ARGC. ​ L'​interpréteur crée BASH_ARGC seulement dans le mode de traçage étendu (consultez ci-dessous la description de
 +              l'​option extdebug de la commande interne shopt).
 +       ​BASH_ARGV
 +              Une variable de type tableau contenant tous les paramètres de la pile d'​appel d'​exécution de l'​interpréteur ​ bash  actuel.
 +              Le  dernier ​ paramètre du dernier sous-programme est au sommet de la pile ; le premier paramètre de l'​appel initial est en
 +              bas. Lorsqu'​un sous-programme est exécuté, les paramètres fournis sont placés dans BASH_ARGV. BASH_ARGV est  créé ​ unique‐
 +              ment  dans  le  mode  de  traçage ​ étendu (consultez ci-dessous la description de l'​option extdebug de la commande interne
 +              shopt).
 +       ​BASH_CMDS
 +              Une variable de type tableau associatif dont les éléments correspondent à une table de hachage interne de commandes ​ comme
 +              celle  gérée par la commande interne hash. Les éléments ajoutés à ce tableau apparaissent dans la liste table de hachage ;
 +              la destruction d'​éléments du tableau implique le retrait des commandes de la table de hachage.
 +       ​BASH_COMMAND
 +              La commande en cours d'​exécution ou sur le point d'​être exécutée, à moins que l'​interpréteur n'​exécute une commande ​ à  la
 +              suite d'une capture, auquel cas c'est la commande s'​exécutant au moment de la capture.
 +       ​BASH_EXECUTION_STRING
 +              L'​argument commande de l'​option d'​appel -c.
 +       ​BASH_LINENO
 +              Une variable de type tableau dont les éléments sont les numéros de ligne des fichiers sources où chaque élément correspon‐
 +              dant de FUNCNAME a été invoqué. ${BASH_LINENO[$i]} est le numéro de la ligne dans le fichier source (${BASH_SOURCE[$i+1]})
 +              où  ${FUNCNAME[$i]} a été appelé (ou ${BASH_LINENO[$i-1]} si consulté depuis une autre fonction de l'​interpréteur). Utili‐
 +              sez LINENO pour obtenir le numéro de ligne actuel.
 +       ​BASH_REMATCH
 +              Une variable de type tableau dont les éléments sont affectés avec l'​opérateur binaire =~ dans la  commande ​ conditionnelle
 +              [[.  L'​élément d'​indice 0 est la partie de la chaîne correspondant à l'​expression rationnelle complète. L'​élément d'​indice
 +              n est la partie de la chaîne correspondant à la n-ième sous-expression entre parenthèses. Cette variable ​ est  en  lecture
 +              seule.
 +       ​BASH_SOURCE
 +              Une  variable de type tableau dont les éléments sont les noms des fichiers source où les noms des fonctions d'​interpréteur
 +              correspondants à la variable de type tableau FUNCNAME sont définis. La fonction d'​interpréteur ${FUNCNAME[$i]} est définie
 +              dans le fichier ${BASH_SOURCE[$i]} et appelée depuis ${BASH_SOURCE[$i+1]}.
 +       ​BASH_SUBSHELL
 +              Incrémentée dans tous les sous-interpréteurs et environnements de sous-interpréteur quand l’interpréteur commence à s’exé‐
 +              cuter dans cet environnement. La valeur initiale est 0.
 +       ​BASH_VERSINFO
 +              Une variable de type tableau protégée en écriture dont les éléments représentent la version de  cette  instance ​ de  bash.
 +              Cette valeur est affectée aux éléments du tableau comme suit :
 +              BASH_VERSINFO[0] ​       Le numéro majeur de la version (release).
 +              BASH_VERSINFO[1] ​       Le numéro mineur de la version (version).
 +              BASH_VERSINFO[2] ​       Le niveau de correctif.
 +              BASH_VERSINFO[3] ​       Le numéro de compilation.
 +              BASH_VERSINFO[4] ​       Le statut de cette version (par exemple beta1).
 +              BASH_VERSINFO[5] ​       La valeur de MACHTYPE.
 +       ​BASH_VERSION
 +              Se développe en une chaîne décrivant le numéro de version de cette instance de bash.
 +       ​COMP_CWORD
 +              Un  indice ​ dans  ${COMP_WORDS} du mot contenant la position actuelle du curseur. Cette variable n'est disponible que dans
 +              les fonctions de l'​interpréteur appelées par les outils de complètement programmables (consultez Complètement programmable
 +              ci-dessous).
 +       ​COMP_KEY
 +              La touche (ou dernière touche d'une suite de touches) utilisée pour appeler la fonction de complètement actuelle.
 +       ​COMP_LINE
 +              La  ligne  de commande actuelle. Cette variable n'est disponible que dans les fonctions de l'​interpréteur appelées par les
 +              outils de complètement programmables (consultez Complètement programmable ci-dessous).
 +       ​COMP_POINT
 +              L'​indice de la position actuelle du curseur relatif au début de la commande actuelle. Si la position actuelle ​ du  curseur
 +              est  à  la fin de la commande actuelle, la valeur de cette variable est égale à ${#​COMP_LINE}. Cette variable n'est dispo‐
 +              nible que dans les fonctions de l'​interpréteur et les commandes externes appelées par les outils de complètement ​ program‐
 +              mables (consultez Complètement programmable ci-dessous).
 +       ​COMP_TYPE
 +              Configurée à une valeur entière correspondant au type de complètement essayé qui a provoqué l'​appel d'une fonction de com‐
 +              plètement : TAB pour un complètement normal, ? pour l'​affichage des complètements après tabulations ​ successives, ​ !  pour
 +              l'​affichage ​ des  alternatives de complètement de mot partiel, @ pour afficher les complètements si le mot n'est pas modi‐
 +              fié, ou % pour le menu de complètement. Cette variable n'est disponible que dans les fonctions de  l'​interpréteur ​ et  les
 +              commandes externes appelées par les outils de complètement programmables (consultez Complètement programmable ci-dessous).
 +       ​COMP_WORDBREAKS
 +              Le  jeu  de  caractères ​ que  la bibliothèque readline considère comme séparateurs de mots lors du complètement de mot. Si
 +              COMP_WORDBREAKS est détruite, elle perd ses propriétés spéciales, même si elle est recréée par la suite.
 +       ​COMP_WORDS
 +              Une variable de type tableau (consultez Tableaux ci-dessous) consistant en  mots  individuels ​ de  la  ligne  de  commande
 +              actuelle. La ligne est découpée en mots comme readline la découperait,​ en utilisant COMP_WORDBREAKS tel que décrit ci-des‐
 +              sus. Cette variable n'est disponible que dans les fonctions de l'​interpréteur appelées par les outils de complètement pro‐
 +              grammables (consultez Complètement programmable ci-dessous).
 +       ​COPROC Une  variable ​ de type tableau (consultez Tableaux ci-dessous) créée pour représenter les descripteurs de fichier pour les
 +              sorties depuis et les entrées vers un coprocessus non nommé (consultez Coprocessus ci-dessus).
 +       ​DIRSTACK
 +              Une variable de type tableau (consultez Tableaux ci-dessous) représentant le contenu actuel de la pile de répertoires. Les
 +              répertoires ​ apparaissent dans la pile dans l'​ordre dans lequel la commande interne dirs les affiche. Les affectations des
 +              éléments de cette variable tableau peuvent être utilisés pour modifier les répertoires déjà dans la pile,  mais  les  com‐
 +              mandes ​ internes ​ pushd  et  popd  doivent ​ être utilisées pour ajouter et enlever des répertoires. L'​affectation de cette
 +              variable ne modifiera pas le répertoire actuel. Si DIRSTACK est détruite, elle perd ses propriétés spéciales, même si elle
 +              est recréée par la suite.
 +       ​EUID ​  ​Contient l'UID effectif de l'​utilisateur,​ initialisé au démarrage de l'​interpréteur. Cette variable est en lecture seule.
 +       ​FUNCNAME
 +              Une  variable de type tableau contenant le nom de toutes les fonctions de l'​interpréteur actuellement dans la pile d'​appel
 +              d'​exécution. L'​élément d'​indice 0 est le nom de l'une des fonctions en cours d'​exécution dans l'​interpréteur. L'​élément le
 +              plus  bas  (celui avec l'​indice le plus grand) est « main ». Cette variable n'​existe que si une fonction de l'​interpréteur
 +              est en cours d'​exécution. Les affectations de FUNCNAME n'ont aucun effet et renvoient un état d'​erreur. ​ Si  FUNCNAME ​ est
 +              détruite, elle perd ses propriétés spéciales, même si elle est recréée par la suite.
 +
 +              Cette variable peut être utilisée avec BASH_LINENO et BASH_SOURCE. Chaque élément de FUNCNAME a des éléments correspondant
 +              dans BASH_LINENO et BASH_SOURCE pour décrire la pile d'​appel. Par exemple, ${FUNCNAME[$i]} a été appelé depuis le  fichier
 +              ${BASH_SOURCE[$i+1]} ​ à  la  ligne  numéro ${BASH_LINENO[$i]}. La commande interne caller affiche la pile d'​appel actuelle
 +              utilisant ces renseignements.
 +       ​GROUPS Une variable de type tableau contenant la liste des groupes dont l'​utilisateur est  membre. ​ Les  affectations ​ de  GROUPS
 +              n'​ont ​ aucun effet et renvoient un état d'​erreur. Si GROUPS est détruite, elle perd ses propriétés spéciales, même si elle
 +              est recréée par la suite.
 +       ​HISTCMD
 +              Le numéro d'​historique,​ ou l'​indice dans la file d'​historique,​ de la commande en cours. Si HISTCMD est détruite, elle perd
 +              ses propriétés spéciales, même si elle est recréée par la suite.
 +       ​HOSTNAME
 +              Automatiquement configurée au nom de la machine actuelle.
 +       ​HOSTTYPE
 +              Automatiquement ​ configurée ​ en chaîne décrivant de façon unique le type de machine sur laquelle bash s'​exécute. La valeur
 +              par défaut dépend du système.
 +       ​LINENO Chaque fois que ce paramètre est consulté, l'​interpréteur le remplace par un nombre décimal représentant le numéro ​ de  la
 +              ligne  actuelle ​ (commençant ​ à 1), au sein du script ou de la fonction. Hors d'un script ou d'une fonction, la valeur n'a
 +              pas nécessairement de sens. Si LINENO est détruite, elle perd ses propriétés spéciales, même si elle est  recréée ​ par  la
 +              suite.
 +       ​MACHTYPE
 +              Automatiquement ​ configurée ​ en  chaîne décrivant le type du système sur lequel bash s'​exécute,​ dans le format standard de
 +              GNU processeur-compagnie-système. La valeur par défaut dépend du système.
 +       ​MAPFILE
 +              Une variable de type tableau (consultez Tableaux ci-dessous) créée pour représenter le texte lu par  la  commande ​ interne
 +              mapfile si aucun nom de variable n'a été fourni.
 +       ​OLDPWD Le répertoire de travail précédent tel que configuré par la commande cd.
 +       ​OPTARG La valeur du dernier argument d'​option traité par la commande interne getopts (consultez COMMANDES INTERNES DE L'​INTERPRÉ‐
 +              TEUR ci-dessous).
 +       ​OPTIND L'​indice du prochain argument à traiter par la commande interne getopts (consultez COMMANDES ​ INTERNES ​ DE  L'​INTERPRÉTEUR
 +              ci-dessous).
 +       ​OSTYPE Automatiquement ​ configurée ​ en chaîne décrivant le système d'​exploitation sur lequel bash s'​exécute. La valeur par défaut
 +              dépend du système.
 +       ​PIPESTATUS
 +              Une variable de type tableau (consultez Tableaux ci-dessous) contenant une liste des états finaux des  processus ​ exécutés
 +              dans la conduite exécutée la plus récemment au premier plan (qui peut éventuellement contenir une seule commande).
 +       ​PPID ​  ​L'​identifiant du processus parent de l'​interpréteur. Cette variable est en lecture seule.
 +       ​PWD ​   Le répertoire de travail actuel tel que configuré par la commande cd.
 +       ​RANDOM À  chaque ​ fois  que  ce paramètre est consulté, un entier aléatoire entre 0 et 32767 est engendré. Cette suite de nombres
 +              aléatoires peut être initialisée en affectant une valeur à RANDOM. Si RANDOM est détruite, elle perd ses  propriétés ​ spé‐
 +              ciales, même si elle est recréée par la suite.
 +       ​READLINE_LINE
 +              Le  contenu ​ du  tampon ​ de ligne readline, pour utiliser avec « bind -x » (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR
 +              ci-dessous).
 +       ​READLINE_POINT
 +              La position du point d'​insertion dans le tampon de ligne readline, pour utiliser avec  « bind ​ -x » ​ (consultez ​ COMMANDES
 +              INTERNES DE L'​INTERPRÉTEUR ci-dessous).
 +       ​REPLY ​ Configurée en ligne de saisie lue par la commande interne read lorsqu'​aucun argument n'a été fourni.
 +       ​SECONDS
 +              À chaque fois que ce paramètre est consulté, le temps en seconde écoulé depuis le lancement de l'​interpréteur est renvoyé.
 +              Si une valeur est affectée à SECONDS, la valeur renvoyée lors d’une consultation ultérieure est le temps en seconde écoulé
 +              depuis ​ l'​affectation, ​ ajouté ​ à la valeur affectée. Si SECONDS est détruite, elle perd ses propriétés spéciales, même si
 +              elle est recréée par la suite.
 +       ​SHELLOPTS
 +              Liste des options activées de l'​interpréteur,​ séparées par des deux-points « : ». Chaque mot de la liste est  un  argument
 +              correct ​ pour  l'​option ​ -o  de  la  commande interne set (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous). Les
 +              options apparaissant dans SHELLOPTS sont celles indiquées comme actives par set -o. Si cette variable est dans  l'​environ‐
 +              nement ​ au  lancement ​ de  bash,  chaque option de la liste est activée avant de lire les fichiers d’initialisation. Cette
 +              variable est en lecture seule.
 +       ​SHLVL ​ Incrémenté de 1 à chaque appel d'une instance de bash.
 +       ​UID ​   Contient l'UID de l'​utilisateur actuel, initialisé au démarrage de l'​interpréteur. Cette variable est en lecture seule.
 +
 +       Les variables suivantes sont utilisées par l'​interpréteur. Dans certains cas, bash affecte des valeurs par défaut aux variables ;
 +       ces cas sont décrits ci-dessous.
 +
 +       ​BASH_COMPAT
 +              La  valeur est utilisée pour définir le niveau de compatibilité de l’interpréteur. Consultez la description de la commande
 +              interne shopt ci-dessous dans COMMANDES INTERNES DE L'​INTERPRÉTEUR pour une description des différents niveaux de compati‐
 +              bilité ​ et  leurs conséquences. La valeur peut être un nombre décimal (par exemple 4.2) ou entier (par exemple 42) corres‐
 +              pondant au niveau de compatibilité voulu. Si BASH_COMPAT est détruite ou définie comme une chaîne vide, le niveau de  com‐
 +              patibilité ​ est défini à la valeur par défaut de la version actuelle. Si BASH_COMPAT est définie à une valeur de niveau de
 +              compatibilité impossible, l’interpréteur affiche un message d’erreur et définit le niveau de compatibilité à la valeur par
 +              défaut ​ de la version actuelle. Les niveaux de compatibilité possibles correspondent aux options de compatibilité acceptée
 +              par la commande interne shopt décrite ci-dessous (par exemple, compat42 signifie que 4.2  et  42  sont  des  valeurs ​ pos‐
 +              sibles). La version actuelle est aussi une valeur possible.
 +       ​BASH_ENV
 +              Si ce paramètre existe lorsque bash exécute un script, sa valeur est considérée comme un nom de fichier contenant les com‐
 +              mandes d'​initialisation de l'​interpréteur,​ comme dans ~/.bashrc. La valeur de BASH_ENV est soumise ​ au  développement ​ des
 +              paramètres, ​ à  la  substitution ​ de  commande ​ et  au  développement arithmétique avant d'​être considérée comme un nom de
 +              fichier. PATH n'est pas utilisée pour rechercher le fichier obtenu.
 +       ​BASH_XTRACEFD
 +              Si configurée à une valeur entière correspondant à un descripteur de fichier correct, bash écrira la trace  de  sortie ​ si
 +              set  -x est activé vers ce descripteur de fichier. Le descripteur de fichier est fermé quand BASH_XTRACEFD est détruite ou
 +              qu'une nouvelle valeur lui est affectée. Détruire BASH_XTRACEFD ou lui affecter la chaîne vide conduit la trace de  sortie
 +              à  être  envoyé vers la sortie d'​erreur standard. Remarquez que configurer BASH_XTRACEFD à 2 (le descripteur de fichier de
 +              la sortie d'​erreur standard) puis la détruire revient à fermer la sortie d'​erreur standard.
 +       ​CDPATH Le chemin de recherche de la commande interne cd. Il s'agit d'une liste de répertoires,​ séparés par des deux-points « : »,
 +              que  l'​interpréteur ​ consulte lorsqu'​il cherche un sous-répertoire destination de la commande cd. Un exemple de valeur est
 +              « .:​~:/​usr ».
 +       ​CHILD_MAX
 +              Définir le nombre de valeurs d’état de sortie des fils dont l’interpréteur doit se souvenir. Bash ne permettra pas à cette
 +              valeur ​ d’être inférieure à un minimum imposé par POSIX, ni d’être supérieure à une valeur maximale (8192 pour l’instant).
 +              La valeur minimale dépend du système.
 +       ​COLUMNS
 +              Utilisée par la commande composée select pour déterminer la largeur du terminal lors de l'​affichage des listes ​ de  sélec‐
 +              tion.  Automatiquement ​ configurée ​ si l’option checkwinsize est activée ou dans un interpréteur interactif à la réception
 +              d'un signal SIGWINCH
 +       ​COMPREPLY
 +              Une variable de type tableau dans lequel bash lit les complètements possibles produits par une fonction de  l'​interpréteur
 +              appelée ​ par  les outils de complètement programmables (consultez Complètement programmable ci-dessous). Chaque élément du
 +              tableau contient un complètement possible.
 +       ​EMACS ​ Si bash trouve cette variable dans l'​environnement lorsque l'​interpréteur démarre avec la valeur « t », il  considère ​ que
 +              l'​interpréteur est lancé dans un tampon d'​interpréteur d'​Emacs et désactive l'​édition en ligne.
 +       ​ENV ​   Similaire à BASH_ENV. Utilisé quand l'​interpréteur est invoqué en mode POSIX.
 +       ​FCEDIT L'​éditeur par défaut utilisé par la commande interne fc.
 +       ​FIGNORE
 +              Une  liste  de  suffixes, ​ séparés ​ par des deux-points « : », que bash ignorera lors du complètement des noms de fichiers
 +              (consultez READLINE ci-dessous). Un nom de fichier dont le suffixe correspond à l'un de ceux mentionnés dans  FIGNORE ​ est
 +              exclu  de  la  liste  des noms de fichiers correspondant pour le complètement. Par exemple, cette variable peut prendre la
 +              valeur « .o:​~ » (des protections sont nécessaires pour l'​affectation d'​une ​ valeur ​ à  cette  variable ​ qui  contient ​ des
 +              tildes).
 +       ​FUNCNEST
 +              Si  configurée à une valeur numérique strictement positive, cela définit le niveau maximal d'​imbrication de fonctions. Les
 +              invocations de fonctions qui dépassent ce niveau d'​imbrication forceront la commande actuelle à abandonner.
 +       ​GLOBIGNORE
 +              Une liste de motifs séparés par des deux-points « : », définissant l'​ensemble des noms de fichiers à ignorer lors du déve‐
 +              loppement ​ des  chemins. Si un nom de fichier correspondant à un motif de développement des chemins correspond également à
 +              un motif dans GLOBIGNORE, il est supprimé de la liste des correspondances.
 +       ​HISTCONTROL
 +              Une liste de valeurs, séparées par des deux-points « : », commandant la façon dont les commandes sont sauvegardées dans la
 +              file  d'​historique. ​ Si  la liste des valeurs contient la valeur ignorespace,​ les lignes commençant par une espace ne sont
 +              pas sauvegardées dans la file d'​historique. La valeur ignoredups conduit à ne  pas  sauvegarder ​ une  ligne  correspondant
 +              exactement à la ligne de commande précédente. La présence de ignoreboth est un condensé pour ignorespace et ignoredups. La
 +              valeur erasedups conduit à retirer de la file d'​historique toutes les lignes précédant la ligne actuelle et lui correspon‐
 +              dant  avant  que cette ligne y soit sauvegardée. Toute valeur qui ne fait pas partie de la liste ci-dessus est ignorée. Si
 +              HISTCONTROL est inexistante ou si elle ne contient pas une valeur correcte, toutes les  lignes ​ lues  par  l'​analyseur ​ de
 +              l'​interpréteur ​ seront sauvegardées dans la file d'​historique,​ selon la valeur de HISTIGNORE. La seconde ligne et les sui‐
 +              vantes d'une commande multiligne ne sont pas testées et sont ajoutées dans l'​historique indépendamment ​ de  la  valeur ​ de
 +              HISTCONTROL.
 +       ​HISTFILE
 +              Le  nom du fichier dans lequel l'​historique des commandes est sauvegardé (consultez HISTORIQUE ci-dessous). Par défaut, il
 +              s'agit de ~/​.bash_history. Si inexistante,​ l'​historique des commandes n'est pas sauvegardé lorsqu'​un interpréteur se  ter‐
 +              mine.
 +       ​HISTFILESIZE
 +              Le  nombre ​ maximal de lignes contenues dans le fichier d'​historique. Quand cette variable contient une valeur, le fichier
 +              d’historique est tronqué, si besoin, pour ne pas contenir plus que ce nombre de lignes en enlevant les  entrées ​ les  plus
 +              anciennes. ​ Ce  fichier est aussi tronqué à cette taille après son écriture quand un interpréteur se termine. Si la valeur
 +              est 0, le fichier d’historique est tronqué à une taille nulle. Les valeurs non numériques ou négatives empêchent la  tron‐
 +              cature. L’interpréteur définit la valeur par défaut à la valeur de HISTSIZE après avoir lu tous les fichiers d’initialisa‐
 +              tion.
 +       ​HISTIGNORE
 +              Une liste de motifs, séparés par des deux-points « : », déterminant quelles lignes de commande devraient être sauvegardées
 +              dans  la file d'​historique. Chaque motif est accroché au début de la ligne et doit lui correspondre en complètement (aucun
 +              ajout de « * » implicite). Chaque motif est comparé à chaque ligne après application des vérifications de HISTCONTROL. ​ En
 +              plus  des  motifs ​ génériques usuels de l'​interpréteur,​ « & » correspond à la ligne précédente de l'​historique. « & » peut
 +              être protégée par une contre-oblique ; la contre-oblique est supprimée avant de tenter une comparaison. La  seconde ​ ligne
 +              et  les  suivantes d'une commande multiligne ne sont pas testées et sont ajoutées dans l'​historique quelque soit la valeur
 +              de HISTIGNORE.
 +       ​HISTSIZE
 +              Le nombre de commandes à mémoriser dans l'​historique (consultez HISTORIQUE ci-dessous). Si la valeur est 0, les  commandes
 +              ne  sont pas sauvegardées dans la liste d’historique. Les valeurs négatives permettent de sauvegarder toutes les commandes
 +              dans la liste d’historique (sans limite). L’interpréteur définit la valeur par défaut ​ à  500  après ​ avoir  lu  tous  les
 +              fichiers d’initialisation.
 +       ​HISTTIMEFORMAT
 +              Si  cette  variable ​ existe ​ et n'est pas NULL, sa valeur est utilisée comme une chaîne de caractères par strftime(3) afin
 +              d'​imprimer l'​horodatage associé à chaque élément de l'​historique ​ affiché ​ par  la  commande ​ interne ​ history. ​ Si  cette
 +              variable ​ existe, ​ les  horodatages ​ sont écrits dans le fichier d'​historique afin d'​être conservés au fur et à mesure des
 +              sessions de l'​interpréteur. Cela utilise le caractère de commentaire d'​historique pour distinguer l'​horodatage des  autres
 +              lignes de l'​historique.
 +       ​HOME ​  ​Le ​ répertoire ​ d'​accueil ​ de  l'​utilisateur ​ actuel ; l'​argument par défaut de la commande interne cd. La valeur de cette
 +              variable est aussi utilisée lors du développement du tilde.
 +       ​HOSTFILE
 +              Contient le nom d'un fichier ayant le même format que /etc/hosts qui devra être lu lorsque l'​interpréteur aura  besoin ​ de
 +              compléter ​ un  nom de machine. La liste des complètements possibles de noms de machines peut être changée pendant l'​exécu‐
 +              tion de l'​interpréteur ; à la tentative de complètement de nom de machine suivant le changement de valeur, bash ajoute ​ le
 +              contenu du nouveau fichier à la liste existante. Si HOSTFILE existe mais est vide, ou désigne un fichier non accessible en
 +              lecture, bash essaie de lire /etc/hosts pour obtenir la liste des complètements de noms  de  machines ​ possibles. ​ Lorsque
 +              HOSTFILE est détruite, la liste des noms de machines est effacée.
 +       ​IFS ​   Le  séparateur ​ de champs interne (« Internal Field Separator ») qui est utilisé pour le découpage en mots après les déve‐
 +              loppements ​ et  pour  découper ​ les  lignes ​ en  mots  avec  la  commande ​ interne ​ read.  La  valeur ​  ​par ​  ​défaut ​  est
 +              « <​espace><​tab><​changement de ligne> ».
 +       ​IGNOREEOF
 +              Commande le comportement d'un interpréteur interactif à réception d'un caractère EOF (fin de fichier) comme unique saisie.
 +              Si elle existe, la valeur est le nombre de caractères EOF consécutifs qui doivent être tapés comme premiers caractères sur
 +              une ligne de saisie avant que bash ne termine. Si la variable existe mais que sa valeur n'est pas numérique ou si elle n'a
 +              pas de valeur, la valeur par défaut est 10. Si elle n'​existe pas, EOF signifie la fin de la saisie pour l'​interpréteur.
 +       ​INPUTRC
 +              Le nom du fichier d’initialisation pour readline, prioritaire sur le fichier par  défaut ​ ~/​.inputrc ​ (consultez ​ READLINE
 +              ci-dessous).
 +       ​LANG ​  ​Utilisée ​ pour  déterminer le paramètre linguistique régional pour toute catégorie non spécifiquement sélectionnée par une
 +              variable commençant par LC_.
 +       ​LC_ALL Cette variable surpasse LANG et toute autre variable LC_ indiquant une catégorie de paramètres linguistiques régionaux.
 +       ​LC_COLLATE
 +              Cette variable détermine l'​ordre de collation utilisé pour trier les résultats du développement des chemins ​ et  détermine
 +              le comportement des expressions d’intervalle,​ des classes d'​équivalences et des suites de collations dans le développement
 +              des chemins et la correspondance de motifs.
 +       ​LC_CTYPE
 +              Cette variable détermine l'​interprétation des caractères et le comportement des classes de caractères lors  du  développe‐
 +              ment des chemins et de la recherche de correspondances de motifs.
 +       ​LC_MESSAGES
 +              Cette  variable ​ détermine ​ le  paramètre linguistique régional utilisé pour traduire les chaînes entre guillemets doubles
 +              précédées d'un $.
 +       ​LC_NUMERIC
 +              Cette variable détermine le paramètre linguistique régional utilisé pour formater les nombres.
 +       ​LINES ​ Utilisée par la commande composée select pour déterminer la taille des colonnes lors de l'​affichage des listes ​ de  sélec‐
 +              tion.  Automatiquement ​ configurée ​ si l’option checkwinsize est activée ou dans un interpréteur interactif à la réception
 +              d'un signal SIGWINCH.
 +       ​MAIL ​  Si ce paramètre correspond à un nom de fichier ou de répertoire et si la variable MAILPATH est inexistante, ​ bash  informe
 +              l'​utilisateur de l'​arrivée de messages dans le fichier indiqué ou le répertoire au format Maildir.
 +       ​MAILCHECK
 +              Indique ​ la durée (en seconde) au bout de laquelle bash vérifie si un nouveau message est arrivé. La valeur par défaut est
 +              60 secondes. Lorsque le délai est écoulé, l'​interpréteur vérifiera la présence d'un courrier électronique avant d'​afficher
 +              son  invite de base. Si cette variable est inexistante,​ ou contient une valeur strictement négative, l'​interpréteur désac‐
 +              tive la vérification du courrier.
 +       ​MAILPATH
 +              Une liste de noms de fichiers séparés par des deux-points « : », dans lesquels on vérifiera l'​arrivée de courrier. Le  nom
 +              d'​un ​ fichier ​ peut  être  suivi  d'un point d'​interrogation « ? », puis d'une chaîne de caractères indiquant le message à
 +              afficher en cas de courrier. Dans cette chaîne, le paramètre $_ correspond au nom du fichier de courrier actuel. Exemple :
 +              MAILPATH='/​usr/​spool/​mail/​bfox?"​Vous avez du courrier":​~/​shell-mail?"​$_ a du courrier !"'​
 +              Bash fournit une valeur par défaut pour cette variable, mais l'​emplacement du fichier boîte à lettres ​ dépend ​ du  système
 +              (par exemple /​usr/​spool/​mail/​$USER).
 +       ​OPTERR Si configurée à la valeur 1, bash affiche les messages d'​erreurs engendrés par la commande interne getopts (consultez COM‐
 +              MANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous). OPTERR est initialisée avec la valeur 1 à chaque appel de l'​interpréteur ou
 +              au lancement d'un script.
 +       ​PATH ​  ​Le ​ chemin ​ de recherche des commandes à exécuter. Il s'agit d'une liste de répertoires,​ séparés par des deux-points « : »
 +              dans lesquels l'​interpréteur recherche les commandes (consultez EXÉCUTION DES COMMANDES ci-dessous). Un nom de  répertoire
 +              de  taille nulle (NULL) dans la valeur de PATH désigne le répertoire actuel. Un répertoire NULL peut apparaître comme deux
 +              deux-points consécutifs ou comme des deux-points en début ou en fin. Le chemin par défaut dépend du système et est  choisi
 +              par          l'​administrateur ​         installant ​         bash.          Une          valeur ​         commune ​        est
 +              « /​usr/​local/​bin:/​usr/​local/​sbin:/​usr/​bin:/​usr/​sbin:/​bin:/​sbin ».
 +       ​POSIXLY_CORRECT
 +              Si cette variable existe dans l'​environnement lorsque bash démarre, l'​interpréteur passe en mode posix avant de  lire  les
 +              fichiers d’initialisation comme si l'​option --posix avait été fournie. Si elle est créée pendant que l'​interpréteur est en
 +              cours d'​exécution,​ bash active le mode posix comme si la commande set -o posix avait été exécutée.
 +       ​PROMPT_COMMAND
 +              Si existante, sa valeur est exécutée comme commande préalablement à l'​affichage de chaque invite de base.
 +       ​PROMPT_DIRTRIM
 +              Si elle contient un nombre supérieur à zéro, cette valeur est utilisée comme nombre de répertoires finaux à conserver lors
 +              du développement des protections de chaîne d'​invite \w et \W (consultez INVITES ci-dessous). Les caractères supprimés sont
 +              remplacés par une ellipse.
 +       ​PS1 ​   La valeur de ce paramètre est développée puis utilisée comme chaîne d'​invite de base (consultez ​ INVITES ​ ci-dessous). ​ La
 +              valeur par défaut est « \s-\v\$ ​ ».
 +       ​PS2 ​   La  valeur ​ de  ce paramètre est développée comme PS1 puis utilisée comme chaîne d'​invite secondaire. La valeur par défaut
 +              est « >  ».
 +       ​PS3 ​   La valeur de ce paramètre est utilisée comme invite de la commande select (consultez GRAMMAIRE DE  L'​INTERPRÉTEUR ​ ci-des‐
 +              sus).
 +       ​PS4 ​   La  valeur ​ de  ce  paramètre est développée comme PS1 puis affichée entre chaque commande lors d'un suivi d'​exécution. Le
 +              premier caractère de PS4 est répété autant de fois que nécessaire pour indiquer le niveau ​ d'​imbrication. ​ La  valeur ​ par
 +              défaut est « +  ».
 +       ​SHELL ​ Le  chemin ​ d'​accès complet à l'​interpréteur de commandes est conservé dans cette variable d'​environnement. Si inexistante
 +              au démarrage de l'​interpréteur,​ bash lui affecte le chemin d'​accès complet à l'​interpréteur de commandes de  connexion ​ de
 +              l'​utilisateur actuel.
 +       ​TIMEFORMAT
 +              La  valeur ​ de  ce  paramètre ​ est utilisée en tant que chaîne de format indiquant comment les informations de paramétrage
 +              doivent être affichées pour les conduites précédées du mot réservé time. Le caractère % introduit une suite de  caractères
 +              de  protection qui est développée en valeur de temps ou autre information. Les suites de caractères de protection et leurs
 +              significations sont les suivantes ; les crochets marquent les parties facultatives.
 +              %%        Un % seul (non interprété).
 +              %[p][l]R ​ Le temps écoulé en seconde.
 +              %[p][l]U ​ Le temps processeur écoulé en mode utilisateur en seconde.
 +              %[p][l]S ​ Le temps processeur écoulé en mode système en seconde.
 +              %P        Le pourcentage de temps processeur utilisé calculé avec (%U + %S) / %R.
 +
 +              Le p facultatif est un chiffre indiquant la précision, le nombre de chiffres après la virgule. Une valeur de 0  conduit ​ à
 +              affichage ​ de  nombre entiers. Trois chiffres au plus peuvent être affichés après la virgule ; toute valeur supérieure à 3
 +              sera modifiée en 3. Si p n'est pas précisé, la valeur 3 est utilisée.
 +
 +              Le l facultatif indique un format plus long, incluant les minutes, de la forme MMmSS.DDs. La valeur de p détermine ​ si  la
 +              partie décimale est affichée ou non.
 +
 +              Si  cette  variable ​ n'​existe ​ pas,  bash agit comme si elle avait la valeur $'​\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'​. Si la
 +              valeur est NULL, aucune information de chronométrage n'est affichée. Un caractère final de changement de ligne est  ajouté
 +              quand la chaîne de format est affichée.
 +       ​TMOUT ​ Si  configurée ​ en valeur strictement positive, TMOUT est traitée comme le délai par défaut pour la commande interne read.
 +              La commande select se termine s'il n'y a pas de saisie au bout de TMOUT secondes lorsque ​ l'​entrée ​ vient  d'​un ​ terminal.
 +              Dans un interpréteur interactif, la valeur est interprétée comme une durée en seconde à attendre une ligne de saisie après
 +              avoir affiché l'​invite de base. Bash se termine après avoir attendu pendant ce temps en seconde si aucune saisie de  ligne
 +              complète n'est arrivée.
 +       ​TMPDIR Si existante, bash utilise sa valeur comme nom de répertoire dans lequel bash crée les fichiers temporaires nécessaires au
 +              fonctionnement de l'​interpréteur.
 +       ​auto_resume
 +              Cette variable commande le comportement de l'​interpréteur vis-à-vis de l'​utilisateur et du contrôle des tâches. ​ Si  cette
 +              variable ​ existe, ​ les  commandes simples constituées d'un seul mot, sans redirection,​ sont considérées comme de possibles
 +              relances de tâches suspendues. Aucune ambiguïté n'est possible, si plusieurs tâches commencent par la  chaîne ​ saisie, ​ la
 +              tâche ​ à  laquelle il a été accédé le plus récemment est sélectionnée. Le nom d'une tâche suspendue, dans ce contexte, est
 +              la ligne de commande utilisée pour la lancer. Si configurée à la valeur exact, la chaîne fournie doit correspondre exacte‐
 +              ment  au  nom  d'une tâche suspendue ; si configurée à substring, la chaîne fournie doit correspondre à une sous-chaîne du
 +              nom de la tâche suspendue. La valeur substring donne une fonctionnalité analogue à l'​identificateur de tâche %? (consultez
 +              CONTRÔLE ​ DES  TÂCHES ci-dessous). Si configurée à toute autre valeur, la chaîne fournie doit être le préfixe du nom d'une
 +              tâche suspendue ; cela fournit une fonctionnalité analogue à l'​identificateur de tâche %string.
 +       ​histchars
 +              Les deux ou trois caractères commandant le développement de l'​historique et le découpage en lexèmes (consultez ​ DÉVELOPPE‐
 +              MENT  DE  L'​HISTORIQUE ​ ci-dessous). ​ Le  premier ​ caractère ​ est le caractère de développement de l'​historique,​ celui qui
 +              indique le début d'un développement d'​historique (normalement « ! »).  Le  second ​ caractère ​ est  celui  de  substitution
 +              rapide, ​ utilisé ​ comme  raccourci ​ pour relancer la commande précédente,​ en modifiant une partie de la chaîne (par défaut
 +              « ^ »). Le troisième caractère facultatif est celui qui indique, lorsqu'​on le trouve en début de mot que le  reste  de  la
 +              ligne  est  un  commentaire (normalement « # »). Ce caractère de commentaire empêche le développement de l'​historique pour
 +              tous les mots restants sur la ligne. Il ne conduit pas nécessairement l'​analyseur de l'​interpréteur à considérer le  reste
 +              de la ligne comme un commentaire.
 +
 +   ​Tableaux
 +       Bash fournit des variables de type tableau indicé ou associatif, à une dimension. Toute variable peut être utilisée comme tableau
 +       ​indicé ; la commande interne declare peut servir à déclarer explicitement un tableau. Il n'y a pas de limitation ​ maximale ​ à  la
 +       ​taille ​ d'un tableau, ni d'​obligation à indicer les éléments ou les affecter de façon contiguë. Les tableaux indicés sont consul‐
 +       tés avec des entiers (évaluations arithmétiques comprises) commençant à zéro ; les tableaux associatifs sont consultés ​ avec  des
 +       ​chaînes arbitraires. Sauf mention contraire, les indices de tableaux indicés doivent être des entiers positifs.
 +
 +       ​Un ​ tableau ​ indicé ​ est créé automatiquement si une variable quelconque est affectée en utilisant la syntaxe nom[indice]=valeur.
 +       ​L'​indice est traité comme une expression arithmétique et doit s'​évaluer en un nombre. declare -a nom permet de déclarer ​ explici‐
 +       ​tement ​ un tableau indicé (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous). declare -a nom[indice] est aussi accepté ;
 +       ​l'​indice est ignoré.
 +
 +       Les tableaux associatifs sont créés en utilisant declare -A nom.
 +
 +       Des attributs peuvent être indiqués pour une variable tableau en utilisant les commandes internes declare et readonly. Les attri‐
 +       buts s'​appliquent à tous les éléments d'un tableau.
 +
 +       ​Les ​ tableaux ​ sont affectés en utilisant l'​affectation composée de la forme nom=(valeur_1 ... valeur_n), où chaque valeur est de
 +       la forme [indice]=chaîne. Les affectations de tableau indicé ne nécessitent rien d’autre que chaîne. ​ Lors  de  l'​affectation ​ de
 +       ​tableaux ​ indicés, ​ si  les  crochets ​ et  les indices facultatifs sont fournis, les affectations ont lieu en conséquence ; sinon
 +       ​l'​indice de l'​élément affecté est le dernier indice affecté plus un. L'​indexation commence à zéro.
 +
 +       Lors de l'​affectation d'un tableau associatif, l'​indice est obligatoire.
 +
 +       Cette syntaxe est aussi acceptée par la commande interne declare. Les éléments individuels du tableau sont affectés en  utilisant
 +       la syntaxe nom[indice]=valeur présentée ci-dessus. Lors de l’affectation vers un tableau indicé, si nom est indicé avec un nombre
 +       ​négatif,​ ce nombre est considéré comme ajouté à l'​indice maximal de nom plus un (ainsi un indice négatif compte à rebours ​ depuis
 +       la fin du tableau et un indice -1 fait référence au dernier élément du tableau).
 +
 +       Tout élément d'un tableau est accessible avec la notation ${nom[indice]}. Les accolades sont nécessaires pour éviter les conflits
 +       avec le développement des chemins. Si indice est @ ou *, le mot se développe en tous les éléments de nom.  Ces  deux  indices ​ ne
 +       ​diffèrent que lorsque le mot apparaît entre guillemets doubles. Si le mot est entre guillemets doubles, ${nom[*]} se développe en
 +       un seul mot contenant les valeurs de chaque élément du tableau séparées par le premier caractère de la variable spéciale ​ IFS  et
 +       ​${nom[@]} développe chaque élément de nom en un mot distinct. Quand il n'y a pas d'​élément dans le tableau, ${nom[@]} ne se déve‐
 +       loppe en rien. Si le développement entre guillemets doubles ​ survient ​ à  l'​intérieur ​ d'​un ​ mot,  le  développement ​ du  premier
 +       ​paramètre ​ est accolé à la première partie du mot original et le développement du dernier paramètre est accolé à la dernière par‐
 +       tie du mot original. Le comportement est analogue à celui des paramètres spéciaux * et @ (consultez Paramètres ​ spéciaux ​ ci-des‐
 +       ​sus). ​ ${#​nom[indice]} ​ s'​évalue ​ en  longueur de l'​élément ${nom[indice]}. Si l'​indice est * ou @, s'​évalue en nombre d'​éléments
 +       dans le tableau. Accéder à une variable tableau sans indice est équivalent à accéder ​ à  l'​élément ​ de  tableau ​ d'​indice ​ 0.  Si
 +       ​l'​indice ​ utilisé ​ pour  référencer ​ un  élément de tableau indicé s'​évalue en un nombre négatif, il est considéré comme ajouté à
 +       ​l'​indice maximal du tableau plus un (ainsi un indice négatif compte à rebours depuis la fin du tableau et un indice -1 fait réfé‐
 +       rence au dernier élément du tableau).
 +
 +       Une variable tableau est considérée configurée si une valeur a été affectée à un indice. La chaîne NULL est une valeur possible.
 +
 +       ​Les ​ clefs  (indices) ​ d’un ​ tableau peuvent être aussi bien obtenues que les valeurs. ${!nom[@]} et ${!nom[*]} se développent en
 +       ​indices assignés dans la variable tableau nom. Le  traitement ​ entre  guillemets ​ doubles ​ est  similaire ​ au  développement ​ des
 +       ​paramètres spéciaux @ et * entre guillemets doubles.
 +
 +       ​La ​ commande ​ interne ​ unset  sert  à  détruire les tableaux. unset nom[indice] détruit l'​élément de tableau d'​indice indice. Les
 +       ​indices négatifs des tableaux indicés sont traités comme décrit précédemment. Un soin particulier doit être apporté afin d'​éviter
 +       ​des ​ effets ​ de  bords  non  désirés ​ provoqués ​ par  le  développement ​ des  chemins. unset nom, où nom est un tableau, ou unset
 +       ​nom[indice],​ avec indice valant * ou @ supprime le tableau entier.
 +
 +       Les commandes internes declare, local et readonly acceptent toutes une option -a pour préciser un tableau indicé et une option -A
 +       ​pour ​ préciser un tableau associatif. Si les deux options sont fournies, -A est prioritaire. La commande interne read accepte une
 +       ​option -a pour affecter une liste de mots lus depuis l'​entrée standard dans un tableau. Les commandes ​ internes ​ set  et  declare
 +       ​affichent les valeurs d'un tableau d'une façon qui permet de les réutiliser pour des affectations.
 +
 +DÉVELOPPEMENTS
 +       ​Les ​ développements ​ sont  appliqués ​ à  la ligne de commande après avoir été découpée en mots. Sept types de développements sont
 +       ​effectués : le développement des accolades, le développement du tilde, le développement des paramètres et des variables, la  sub‐
 +       ​stitution de commande, le développement arithmétique,​ le découpage en mots et le développement des chemins.
 +
 +       ​L'​ordre ​ des développements est : développement des accolades ; développement du tilde, des paramètres,​ des variables et arithmé‐
 +       ​tique,​ et substitution de commande (effectuée de la gauche vers la droite) ; découpage en mots ; et développement des chemins.
 +
 +       Sur les systèmes qui le permettent, un développement supplémentaire a lieu : la substitution de processus. Il est réalisé en même
 +       temps que le développement du tilde, des paramètres,​ des variables et arithmétique,​ et que la substitution de commande.
 +
 +       ​Seuls ​ le  développement ​ des accolades, le découpage en mots et le développement des chemins peuvent modifier le nombre de mots.
 +       Les autres développements transforment un mot unique en un autre mot unique. La seule exception à cette règle est  le  développe‐
 +       ment de « $@ » et « ${nom[@]} » comme expliqué ci-dessus (consultez PARAMÈTRES).
 +
 +   ​Développement des accolades
 +       Le développement des accolades est un mécanisme permettant de produire des chaînes quelconques. Il est similaire au développement
 +       des chemins, mais les noms de fichiers produits n'​existent pas nécessairement. Les motifs qui seront développés prennent la forme
 +       ​d'​un préambule facultatif, suivi soit par une série de chaînes séparées par des virgules, soit par l'​expression d'une série entre
 +       ​accolades,​ et suivi par un post-scriptum facultatif. Le préambule est inséré devant chacune des chaînes contenues entre les acco‐
 +       ​lades ​ et  le  post-scriptum ​ est  concaténé à la fin de chacune des chaînes résultantes,​ le développement se faisant de gauche à
 +       ​droite.
 +
 +       ​Plusieurs développements d'​accolades peuvent être imbriqués. Les résultats de chaque développement ne sont pas triés, l'​ordre ​ de
 +       ​gauche à droite est conservé. Par exemple a{d,c,b}e se développe en « ade ace abe ».
 +
 +       Une expression de série est de la forme {x..y[..incr]},​ où x et y sont soit des entiers, soit des caractères uniques, et incr, un
 +       ​incrément facultatif, est un entier. Lorsqu'​il s'agit d'​entiers,​ l'​expression est remplacée par la liste des nombres entre x et y
 +       ​inclus. ​ Les  entiers fournis peuvent être préfixés par 0 pour forcer chaque terme à avoir la même longueur. Si x ou y commencent
 +       par un zéro, l'​interpréteur essaiera de forcer tous les termes créés à la même longueur, en ajoutant des zéros ​ au  besoin. ​ S'il
 +       ​s'​agit de caractères,​ l'​expression se développe en l’ensemble des caractères situés entre x et y, inclus, d'un point de vue lexi‐
 +       ​cographique en utilisant les paramètres régionaux par défaut de C. Remarquez que x et y doivent être du même type. Si l'​incrément
 +       est fourni, il est utilisé comme différence entre chaque terme. L'​incrément par défaut est 1 ou -1 suivant les valeurs de x et y.
 +
 +       ​Le ​ développement ​ des  accolades est effectué avant tout autre développement et tous les caractères ayant une signification spé‐
 +       ciale pour les autres développements sont conservés dans le résultat. Il  s'​agit ​ d'​une ​ modification ​ purement ​ littérale. ​ Bash
 +       ​n'​effectue aucune interprétation syntaxique du texte entre les accolades.
 +
 +       ​Un ​ développement ​ d'​accolades ​ correctement formé doit contenir des accolades ouvrante et fermante non protégées et au moins une
 +       ​virgule non protégée ou une expression de  série ​ correcte. ​ Tout  développement ​ d'​accolades ​ incorrectement ​ formé ​ est  laissé
 +       ​inchangé. ​ Un  { ou un , peuvent être protégés par une contre-oblique pour éviter d'​être considérés comme partie d'une expression
 +       entre accolades. Pour éviter tout conflit avec le développement des paramètres,​ la chaîne ${ n'est pas considérée comme  éligible
 +       au développement des accolades.
 +
 +       ​Cette ​ construction ​ est typiquement utilisée comme raccourci lorsque le préfixe commun aux chaînes à engendrer est plus long que
 +       dans l'​exemple ci-dessous :
 +
 +              mkdir /​usr/​local/​src/​bash/​{old,​new,​dist,​bugs}
 +       ou
 +              chown root /​usr/​{ucb/​{ex,​edit},​lib/​{ex?​.?​*,​how_ex}}
 +
 +       Le développement des accolades induit une légère incompatibilité avec les versions historiques de sh. sh n'​effectue aucun traite‐
 +       ​ment ​ sur  les accolades ouvrantes et fermantes lorsqu'​elles apparaissent dans un mot et les laisse inchangées. Bash supprime les
 +       ​accolades dans les mots, après développement. Par exemple, si le mot file{1,2} est fourni à sh, il reste inchangé en  sortie. ​ En
 +       ​revanche, ​ il  est  transformé ​ en  file1  file2  par bash. Si une compatibilité stricte avec sh est nécessaire,​ lancez bash avec
 +       ​l'​option +B ou désactivez le développement des accolades avec l'​option +B de la commande set  (consultez ​ COMMANDES ​ INTERNES ​ DE
 +       ​L'​INTERPRÉTEUR ci-dessous).
 +
 +   ​Développement du tilde
 +       Si un mot commence par un caractère tilde (« ~ ») non protégé, tous les caractères précédant la première barre oblique non proté‐
 +       gée (voire tous les caractères s'il n'y a pas de barre oblique non protégée),​ sont considérés comme un préfixe ​ tilde. ​ Si  aucun
 +       ​caractère ​ du  préfixe ​ tilde  n'est protégé, les caractères suivant le tilde sont traités comme un identifiant de connexion pos‐
 +       ​sible. Si cet identifiant de connexion est la chaîne NULL, le tilde est remplacé par la valeur du paramètre d'​interpréteur ​ HOME.
 +       ​Si ​ HOME n'​existe pas, le répertoire d'​accueil de l'​utilisateur exécutant l'​interpréteur est utilisé à la place. Sinon le préfixe
 +       tilde est remplacé par le répertoire d'​accueil associé à l'​identifiant de connexion indiqué.
 +
 +       Si le préfixe tilde est « ~+ », la valeur de la variable de l'​interpréteur PWD le remplace. Si le préfixe tilde  est  « ~- »,  la
 +       ​valeur ​ de  la variable de l'​interpréteur OLDPWD, si existante, lui est substituée. Si les caractères à la suite du tilde dans le
 +       ​préfixe tilde représentent un nombre N préfixé facultativement par un « + » ou un « - » le préfixe tilde est remplacé par  l'​élé‐
 +       ​ment ​ correspondant ​ de  la  pile  de répertoires telle qu'il serait affiché par la commande interne dirs appelée avec le préfixe
 +       tilde en argument. Si les caractères à la suite du tilde dans le préfixe tilde représentent un nombre sans un « + » ou  « - »  en
 +       ​tête,​ on suppose qu'il s'agit de « + ».
 +
 +       Si l'​identifiant de connexion est incorrect ou si le développement du tilde échoue, le mot est inchangé.
 +
 +       ​Chaque ​ affectation ​ de  variable ​ vérifie immédiatement la présence de préfixes tilde non protégés suivant un : ou le premier =.
 +       Dans ces cas, le développement des tildes est aussi effectué. On peut donc utiliser des noms de fichiers avec des tildes dans des
 +       ​affectations de PATH, MAILPATH et CDPATH et l'​interpréteur affectera la valeur développée.
 +
 +   ​Remplacement des paramètres
 +       ​Le ​ caractère « $ » permet d'​introduire le développement des paramètres,​ la substitution de commande ou le développement arithmé‐
 +       ​tique. Le nom du paramètre ou du symbole à développer peut être encadré par des accolades facultatives mais  permettant ​ d'​éviter
 +       ​le ​ développement de la variable à partir de caractères la suivant immédiatement et qui pourraient être considérés comme apparte‐
 +       nant à son nom.
 +
 +       ​Lorsque les accolades sont utilisées, l'​accolade de fin correspondante ​ est  le  premier ​ caractère ​ « } »  ni  protégé ​ par  une
 +       ​contre-oblique, ​ ni inclus dans une chaîne protégée, un développement arithmétique,​ une substitution de commande ou un développe‐
 +       ment des paramètres.
 +
 +       ​${paramètre}
 +              est remplacé par la valeur du paramètre. Les accolades sont nécessaires quand le paramètre est  un  paramètre ​ positionnel
 +              ayant  plusieurs ​ chiffres, ​ ou  si  le paramètre est suivi de caractères n'​appartenant pas à son nom. Le paramètre est un
 +              paramètre d’interpréteur (comme décrit précédemment dans PARAMÈTRES) ou une référence de tableau (Tableaux).
 +
 +       Si le premier caractère du paramètre est un point d'​exclamation (!), il introduit un niveau d'​imbrication de variable. Bash  uti‐
 +       ​lise ​ la  valeur de la variable formée par le reste du paramètre comme un nom de variable. Cette variable est alors développée et
 +       la valeur utilisée pour le reste de la substitution plutôt que la valeur du paramètre lui-même. On appelle ce mécanisme le  déve‐
 +       ​loppement ​ imbriqué. ​ Les  exceptions ​ à celui-ci sont les développements de ${!préfixe*} et de ${!nom[@]} décrits ci-dessous. Le
 +       point d'​exclamation doit immédiatement suivre l'​accolade ouvrante afin d'​introduire l'​imbrication.
 +
 +       Dans chacun des cas ci-dessous, le mot est soumis au développement du tilde, au développement des paramètres,​ à  la  substitution
 +       de commande et au développement arithmétique.
 +
 +       ​Quand ​ il  n'​effectue ​ pas de développement de sous-chaîne,​ en utilisant les formes documentées ci-dessous (par exemple :-), bash
 +       teste si le paramètre est inexistant ou NULL. L'​absence de deux-points induit un test sur la seule inexistence du paramètre.
 +
 +       ​${paramètre:​-mot}
 +              Utilisation de valeur par défaut. Si le paramètre est inexistant ou NULL, le développement du mot  est  substitué. ​ Sinon,
 +              c'est la valeur du paramètre qui est substituée.
 +       ​${paramètre:​=mot}
 +              Affectation ​ de  valeur ​ par  défaut. ​ Si le paramètre est inexistant ou NULL, le développement du mot lui est affecté. La
 +              valeur du paramètre est alors substitué. Les paramètres positionnels et spéciaux ne peuvent pas  être  affectés ​ de  cette
 +              façon.
 +       ​${paramètre:?​mot}
 +              Affichage ​ d'​erreur ​ si NULL ou inexistant. Si le paramètre est inexistant ou NULL, le développement du mot (ou un message
 +              approprié si aucun mot n'est fourni) est affiché sur la sortie d'​erreur standard et l'​interpréteur termine, s'il n'est pas
 +              interactif. Sinon, la valeur du paramètre est substituée.
 +       ​${paramètre:​+mot}
 +              Utilisation de valeur alternative. Si le paramètre est NULL ou inexistant, rien n'est substitué. Sinon le développement du
 +              mot est substitué.
 +       ​${paramètre:​début}
 +       ​${paramètre:​début:​longueur}
 +              Développement des sous-chaînes. Se développe pour fournir la sous-chaîne de longueur indiquée (en caractère) commençant au
 +              début. ​ Si  le  paramètre ​ est @, un tableau indicé par @ ou *, ou un nom de tableau associatif, le résultat diffère comme
 +              décrit ci-dessous. Si la longueur est omise, fournit la sous-chaîne commençant au caractère indiqué par début ​ et  s'​éten‐
 +              dant  jusqu'​à la fin de la valeur. La longueur et le début sont des expressions arithmétiques (consultez ÉVALUATION ARITH‐
 +              MÉTIQUE ci-dessous).
 +
 +              Si le début est négatif, sa valeur est considérée à partir de la fin du contenu du paramètre. Si longueur est négatif, ​ sa
 +              valeur ​ est  considérée ​ comme  une position en caractère à partir de la fin de la valeur de paramètre plutôt que comme un
 +              nombre de caractères,​ et le développement est constitué des caractères entre le début et cette position. Remarquez que les
 +              positions ​ négatives ​ doivent ​ être séparées des deux-points par au moins une espace pour éviter d’être confondues avec le
 +              développement de :-.
 +
 +              Si le paramètre est @, le résultat correspond à longueur paramètres positionnels commençant au début. Une valeur ​ négative
 +              de début est considérée relative au plus grand paramètre positionnel plus un (ainsi un indice -1 fait référence au dernier
 +              paramètre positionnel). C’est une erreur de développement si longueur est évaluée en nombre négatif.
 +
 +              Si le paramètre est un nom de tableau indicé par @ ou *, le résultat est les longueur éléments ​ du  tableau ​ commençant ​ à
 +              ${paramètre[début]}. ​ Une  valeur ​ négative ​ de  début ​ est prise relativement à la valeur maximale de l'​indice du tableau
 +              considéré plus un. C’est une erreur de développement si longueur est évaluée en nombre négatif.
 +
 +              Le développement de sous-chaîne appliqué à un tableau associatif produit des résultats non définis.
 +
 +              L'​indexation des sous-chaînes commence à zéro, sauf pour les paramètres positionnels pour lesquels l'​indexation commence à
 +              1 par défaut. Si début est 0, et que les paramètres positionnels sont utilisés, la liste est préfixée par $0.
 +
 +       ​${!préfixe*}
 +       ​${!préfixe@}
 +              Noms  correspondant ​ au  préfixe. ​ Se développe en noms des variables dont les noms commencent par préfixe, séparés par le
 +              premier caractère de la variable spéciale IFS. Si @ est utilisé et que le développement apparaît entre guillemets doubles,
 +              chaque nom de variable se développe séparément.
 +
 +       ​${!nom[@]}
 +       ​${!nom[*]}
 +              Liste  des  clefs  du  tableau. Si nom est une variable de type tableau, elle se développe en liste des indices (clefs) du
 +              tableau affecté à nom. Si nom n'est pas un tableau, se développe en 0 si nom existe et en NULL sinon. Quand @ est  utilisé
 +              et que le développement apparaît entre guillemets doubles, chaque clef se développe en un mot séparé.
 +
 +       ​${#​paramètre}
 +              Longueur du paramètre. Est remplacé par la longueur, en caractères,​ de la valeur du paramètre. Si le paramètre est * ou @,
 +              la valeur est le nombre de paramètres positionnels. Si le paramètre est un nom de tableau indicé par *  ou  @,  la  valeur
 +              donnée ​ est le nombre d'​éléments du tableau. Si le paramètre est un nom de tableau indicé par un nombre négatif, ce nombre
 +              est considéré comme ajouté à l'​indice maximal de paramètre plus un (ainsi un indice négatif compte à rebours depuis la fin
 +              du tableau et un indice -1 fait référence au dernier élément).
 +
 +       ​${paramètre#​mot}
 +       ​${paramètre##​mot}
 +              Retrait ​ du  motif  correspondant ​ au préfixe. Le mot est développé pour fournir un motif, comme dans le développement des
 +              chemins. Si le motif correspond au début de la valeur du paramètre, alors le développement prend la valeur ​ développée ​ du
 +              paramètre ​ après ​ suppression ​ du plus court (cas « # ») ou du plus long (cas « ## ») motif correspondant. Si le paramètre
 +              est @ ou *, l'​opération de suppression de motif est appliquée à chaque paramètre positionnel tour à tour et le  développe‐
 +              ment  est  la liste résultante. Si le paramètre est une variable tableau indicée par @ ou *, l'​opération de suppression de
 +              motif est appliquée à chaque élément du tableau tour à tour et le développement est la liste résultante.
 +
 +       ​${paramètre%mot}
 +       ​${paramètre%%mot}
 +              Retrait du motif correspondant au suffixe. Le mot est développé pour fournir un motif, comme  dans  le  développement ​ des
 +              chemins. Si le motif correspond à une portion finale de la valeur développée du paramètre, alors le développement prend la
 +              valeur développée du paramètre après suppression du plus court (cas « % ») ou du plus long (cas « %% »)  motif  correspon‐
 +              dant.  Si le paramètre est @ ou *, l'​opération de suppression de motif est appliquée à chaque paramètre positionnel tour à
 +              tour et le développement est la liste résultante. Si le paramètre est une variable tableau indicée par @ ou *, l'​opération
 +              de suppression de motif est appliquée à chaque élément du tableau tour à tour et le développement est la liste résultante.
 +
 +       ​${paramètre/​motif/​chaîne}
 +              Substitution ​ de motif. Le motif est développé comme dans le traitement des chemins. Le paramètre est développé et la plus
 +              longue portion correspondant au motif est remplacée par la chaîne. Si le motif commence par /, toutes les  correspondances
 +              au  motif sont remplacées par la chaîne. Normalement,​ seule la première correspondance est remplacée. Si le motif commence
 +              par #, il doit correspondre au début de la valeur développée du paramètre. Si le motif commence par  %,  il  doit  corres‐
 +              pondre ​ à la fin du développement du paramètre. Si la chaîne est NULL, les portions correspondant au motif sont supprimées
 +              et le / suivant le motif peut être omis. Si le paramètre est @ ou *, l'​opération de substitution est  appliquée ​ à  chacun
 +              des  paramètres ​ positionnels ​ tour  à  tour et le développement est la liste résultante. Si le paramètre est une variable
 +              tableau indicée par @ ou *, l'​opération de substitution s'​applique à chaque élément du tableau tour à tour et le  dévelop‐
 +              pement est la liste résultante.
 +
 +       ​${paramètre^motif}
 +       ​${paramètre^^motif}
 +       ​${paramètre,​motif}
 +       ​${paramètre,,​motif}
 +              Modification ​ de la casse. Ce développement modifie la casse des caractères alphabétiques du paramètre. Le motif est déve‐
 +              loppé pour fournir un motif, comme dans le développement ​ des  chemins. ​ Chaque ​ caractère ​ de  la  valeur ​ développée ​ de
 +              paramètre ​ est  testé ​ par  rapport au motif et, en cas de correspondance,​ sa casse est convertie. Le motif ne devrait pas
 +              essayer de correspondre à plus d’un caractère. L'​opérateur ^ convertit les lettre minuscules correspondant à ce  motif  en
 +              majuscules ;  l'​opérateur ​ , convertit les lettre majuscules correspondant à ce motif en minuscules. Les développements ^^
 +              et ,, convertissent tous les caractères correspondant à leur valeur développée ; les développements ^ et  ,  convertissent
 +              seulement ​ le premier caractère de la valeur développée correspondant. Si motif est omis, il est traité comme un ?, ce qui
 +              correspond à n'​importe quel caractère. Si le paramètre est @ ou *, la modification de casse s'​applique à chaque ​ paramètre
 +              positionnel ​ tour à tour et le développement est la liste résultante. Si le paramètre est une variable tableau indicée par
 +              @ ou *, la modification de casse s'​applique à chaque élément du tableau tour à tour  et  le  développement ​ est  la  liste
 +              résultante.
 +
 +   ​Substitution de commande
 +       La substitution de commande permet de remplacer le nom d'une commande par son résultat. Il en existe deux formes :
 +
 +              $(commande)
 +       ou
 +              `commande`
 +
 +       ​Bash ​ effectue ​ la  substitution ​ en exécutant la commande et en la remplaçant par sa sortie standard dont les éventuels sauts de
 +       ​lignes finaux sont supprimés. Les changements de ligne internes ne sont pas supprimés mais peuvent disparaître lors du  découpage
 +       en mots. La substitution de commande $(cat fichier) peut être remplacée par l'​équivalent plus rapide $(< fichier).
 +
 +       ​Quand ​ l'​ancienne forme de substitution avec les accents graves « ` » est utilisée, le caractère contre-oblique garde sa signifi‐
 +       ​cation propre sauf lorsqu'​il est suivi de $, ` ou \. Le premier accent grave non protégé par une contre-oblique termine ​ la  sub‐
 +       ​stitution ​ de  commande. ​ Quand  on utilise la forme $(commande),​ tous les caractères entre parenthèses constituent la commande ;
 +       aucun n'est traité spécifiquement.
 +
 +       Les substitutions de commande peuvent être imbriquées. Pour imbriquer en utilisant la forme à accents graves, ​ il  faut  protéger
 +       les accents graves internes avec des contre-obliques.
 +
 +       ​Si ​ la substitution apparaît entre guillemets doubles, le découpage en mots et le développement des chemins ne sont pas effectués
 +       sur ses résultats.
 +
 +   ​Développement arithmétique
 +       Le développement arithmétique permet de remplacer une expression arithmétique par le résultat de son  évaluation. ​ Le  format ​ du
 +       ​développement arithmétique est :
 +
 +              $((expression))
 +
 +       ​L'​ancien format $[expression] est obsolète et sera supprimé dans les prochaines versions de bash.
 +
 +       ​L'​expression ​ est  traitée ​ comme  si  elle était entre guillemets doubles, mais un guillemet double à l'​intérieur de parenthèses
 +       ​n'​est pas traité spécifiquement. Tous les lexèmes dans l'​expression sont sujet au développement des paramètres et des  variables,
 +       ​à ​ la substitution de commande et à la suppression des protections. Le résultat est traité comme l’expression arithmétique à éva‐
 +       luer. Les développements arithmétiques peuvent être imbriqués.
 +
 +       ​L'​évaluation est effectuée en suivant les règles décrites ci-dessous dans ÉVALUATION ARITHMÉTIQUE. ​ Si  l'​expression ​ est  incor‐
 +       ​recte,​ bash affiche un message indiquant l'​échec et aucune substitution n'a lieu.
 +
 +   ​Substitution de processus
 +       ​La ​ substitution ​ de processus n'est disponible que sur les systèmes acceptant le mécanisme des tubes nommés (FIFO) ou la méthode
 +       /​dev/​fd de noms de fichiers. Elle prend la forme <(liste) ou >​(liste). La liste de processus est exécutée avec son entrée ​ ou  sa
 +       ​sortie ​ connectée à une FIFO ou à un fichier dans /dev/fd. Le nom de ce fichier est passé en argument à la commande qui sera exé‐
 +       ​cutée comme résultat de cette substitution. Si on utilise la forme >​(liste),​ l'​écriture dans le fichier fournira des entrées pour
 +       la liste. Si la forme <(liste) est utilisée, le fichier passé en argument devra être lu pour obtenir la sortie de la liste.
 +
 +       ​Sur ​ les  systèmes qui le permettent, la substitution de processus est effectuée simultanément au développement des paramètres et
 +       ​variables,​ à la substitution de commande et au développement arithmétique.
 +
 +   ​Découpage en mots
 +       Les résultats du développement des paramètres,​ de la substitution de commande et du développement arithmétique qui ne se trouvent
 +       pas entre guillemets doubles sont analysés par l'​interpréteur afin d'​appliquer le découpage en mots.
 +
 +       ​L'​interpréteur ​ considère ​ chaque caractère du paramètre IFS comme un délimiteur et découpe le résultat des autres développements
 +       en mots utilisant ces caractères ​ comme  terminaisons ​ de  champ. ​ Si  IFS  est  inexistante ​ ou  si  sa  valeur ​ est  exactement
 +       <​espace><​tab><​changement de ligne>, la valeur par défaut, alors les suites de caractères <​espace>,​ <tab> et <​changement de ligne>
 +       au début ou à la fin du résultat des développements précédents sont ignorés, et toute suite de caractères de IFS ni au début ni à
 +       la fin sert à délimiter les mots. Si IFS a une valeur autre que celle par défaut, alors les suites de caractères blancs espace et
 +       ​tabulation sont ignorées en début et fin de mot, à condition que ces caractères blancs se trouvent dans  la  valeur ​ de  IFS  (un
 +       ​caractère ​ blanc de IFS). Tout caractère de IFS qui n'est pas un caractère blanc, se trouvant à côté d'un caractère blanc de IFS,
 +       ​délimite un champ. Une suite de caractères blancs de IFS est également traitée comme un délimiteur. Si la valeur de IFS est NULL,
 +       aucun découpage en mots n'a lieu.
 +
 +       ​Les ​ arguments ​ NULL explicites (""​ ou ''​) sont conservés. Les arguments NULL implicites non protégés, résultant du développement
 +       des paramètres qui n'ont pas de valeurs, sont supprimés. Si un paramètre sans valeur est développé entre guillemets ​ doubles, ​ le
 +       ​résultat est un argument NULL qui est conservé.
 +
 +       ​Remarquez que si aucun développement n'a lieu, le découpage en mots n'est pas effectué.
 +
 +   ​Développement des chemins
 +       ​Après ​ le  découpage ​ en mots, à moins que l'​option -f soit présente, bash recherche dans chaque mot les caractères *, ? et [. Si
 +       ​l'​un d'eux apparaît, le mot est considéré comme un motif et remplacé par une liste, classée par ordre alphabétique,​ des  noms  de
 +       ​fichiers ​ correspondant à ce motif (consultez Motifs génériques ci-dessous). Si aucun nom de fichier ne correspond et si l'​option
 +       ​d'​interpréteur nullglob n'est pas activée, le mot reste inchangé. Si l'​option nullglob existe et si aucune ​ correspondance ​ n'est
 +       ​trouvée, ​ le  mot  est supprimé. Si l'​option d'​interpréteur failglob existe et si aucune correspondance n'est trouvée, un message
 +       ​d'​erreur est affiché et la commande n'est pas exécutée. Si l'​option d'​interpréteur nocaseglob est activée, la correspondance ​ est
 +       ​effectuée ​ sans  tenir  compte de la casse des caractères alphabétiques. Remarquez que lorsque des expressions d’intervalle comme
 +       [a-z] (voir ci-dessous) sont utilisées les lettres de l'​autre casse peuvent être incluses, selon le  paramétrage ​ de  LC_COLLATE.
 +       ​Quand ​ un  motif  est utilisé pour le développement des chemins, le caractère « . » au début d'un nom ou immédiatement à la suite
 +       ​d'​une barre oblique doit être explicitement mis en correspondance,​ à moins que l'​option d'​interpréteur dotglob n'​existe. Lors  de
 +       ​la ​ correspondance ​ avec  un  chemin, le caractère barre oblique doit toujours être mis en correspondance explicitement. Dans les
 +       ​autres cas, le caractère « . » n'est pas traité spécifiquement. Voyez la description de la commande shopt dans COMMANDES INTERNES
 +       DE L'​INTERPRÉTEUR pour une description des options d'​interpréteur nocaseglob, nullglob, failglob et dotglob.
 +
 +       ​La ​ variable ​ de l'​interpréteur GLOBIGNORE peut servir à restreindre l'​ensemble des noms de fichiers correspondant à un motif. Si
 +       ​GLOBIGNORE existe, chaque nom de fichier qui correspond aussi à un motif de GLOBIGNORE est supprimé de la  liste  des  correspon‐
 +       ​dances. Les noms de fichiers « . » et « .. » sont toujours ignorés quand GLOBIGNORE existe et n'est pas NULL. Toutefois, configu‐
 +       rer GLOBIGNORE avec une valeur non NULL a pour effet d'​activer l'​option d'​interpréteur dotglob, ainsi tous  les  autres ​ noms  de
 +       ​fichiers ​ commençant ​ par « . » correspondront. Pour obtenir l'​ancien comportement ignorant les noms commençant par « . », placez
 +       « .* » dans l'un des motifs de GLOBIGNORE. L'​option dotglob est désactivée si la variable GLOBIGNORE est inexistante.
 +
 +       ​Motifs génériques
 +
 +       Tout caractère apparaissant dans un motif, hormis les caractères spéciaux décrits ci-dessous, correspond à lui-même. Le caractère
 +       ​NUL ​ ne  peut pas se trouver dans un motif. Une contre-oblique protège le caractère qui la suit ; la contre-oblique de protection
 +       est supprimée lors de la recherche de correspondance. Les caractères spéciaux de motifs doivent être protégés s'ils sont destinés
 +       à une correspondance littérale.
 +
 +       Les caractères spéciaux ont les significations suivantes :
 +
 +              *      Correspond à n'​importe quelle chaîne, y compris la chaîne NULL. Si l'​option globstar de l'​interpréteur est activée,
 +                     et que * est utilisé dans un contexte de développement des chemins, deux * adjacents sont  utilisés ​ pour  un  seul
 +                     ​motif ​ correspondant ​ à tous les fichiers et zéro ou plus de répertoires et sous-répertoires. Lorsqu'​il sont suivis
 +                     de /, deux * adjacents correspondront seulement aux répertoires et sous-répertoires.
 +              ?      Correspond à n'​importe quel caractère.
 +              [...]  Correspond à tout caractère entre les crochets. Un couple de caractères séparés par un trait  d'​union ​ indique ​ une
 +                     ​expression ​ d’intervalle ;  tout  caractère ​ qui  correspond à n'​importe quel caractère situé entre les deux bornes
 +                     ​incluses,​ en utilisant les suites de collations et le jeu de  caractères ​ des  paramètres ​ linguistiques ​ régionaux
 +                     ​actuels, ​ est  capturé. ​ Si  le premier caractère suivant le [ est un ! ou un ^ alors la correspondance se fait sur
 +                     tous les caractères hors intervalle. L'​ordre de tri des caractères dans les expressions d’intervalle est  déterminé
 +                     par les paramètres linguistiques régionaux actuels et par les valeurs des variables de l'​interpréteur LC_COLLATE et
 +                     ​LC_ALL si existantes. Pour obtenir l’interprétation traditionnelle des expressions d’intervalle,​ où [a-d] est équi‐
 +                     ​valent ​ à  [abcd], configurez la valeur de la variable d’interpréteur LC_ALL à C ou activez l’option d’interpréteur
 +                     ​globasciiranges. Un - peut faire partie du motif de correspondance à condition d’être ​ le  premier ​ ou  le  dernier
 +                     ​caractère ​ de l'​ensemble. Un ] peut faire partie du motif de correspondance à condition d’être le premier caractère
 +                     de l'​ensemble.
 +
 +                     Entre [ et ], on peut indiquer une classe de caractère en utilisant la syntaxe [:classe:], où classe est l'​une ​ des
 +                     ​classes suivantes, définies dans la norme POSIX :
 +                     alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit
 +                     ​Une ​ classe ​ correspond ​ à  n'​importe ​ quel  caractère ​ qui s'y trouve. La classe de caractères word correspond aux
 +                     ​lettres,​ aux chiffres et au caractère souligné « _ ».
 +
 +                     Entre [ et ], on peut indiquer une classe d'​équivalence en utilisant la syntaxe [=c=] qui  correspond ​ à  n'​importe
 +                     ​quel ​ caractère ayant le même poids de collation (comme indiqué par les paramètres linguistiques régionaux actuels)
 +                     que le caractère c.
 +
 +                     Entre [ et ], la syntaxe [.symbole.] correspond au symbole de collation symbole.
 +
 +       Si l'​option extglob d'​interpréteur est activée par la commande interne shopt plusieurs opérateurs de correspondance étendue ​ sont
 +       ​reconnus. Dans la description suivante, une liste-motif est une liste d'un ou plusieurs motifs séparés par des |. Les motifs com‐
 +       ​posés sont formés en utilisant un ou plusieurs sous-motifs comme suit :
 +
 +              ?​(liste-motif)
 +                     ​Correspond à zéro ou une occurrence des motifs indiqués.
 +              *(liste-motif)
 +                     ​Correspond à zéro ou plusieurs occurrences des motifs indiqués.
 +              +(liste-motif)
 +                     ​Correspond à une ou plusieurs occurrences des motifs indiqués.
 +              @(liste-motif)
 +                     ​Correspond à une occurrence exactement des motifs indiqués.
 +              !(liste-motif)
 +                     ​Correspond à tout sauf l'un des motifs indiqués.
 +
 +   ​Suppression des protections
 +       ​Après les développements précédents,​ toutes les occurrences non protégées des caractères \, ' et " qui ne résultent pas d'​un ​ des
 +       ​développements ci-dessus sont supprimées.
 +
 +REDIRECTIONS
 +       ​Avant ​ qu'​une ​ commande ne soit exécutée, il est possible de rediriger son entrée ou sa sortie en utilisant une notation spéciale
 +       prise en compte par l'​interpréteur. La redirection permet aux descripteurs de fichier d’être dupliqués, ouverts, fermés, de faire
 +       ​référence ​ à d’autres fichiers et peut modifier les fichiers lus et écrits par la commande. Les redirections permettent également
 +       de modifier les descripteurs de fichiers dans l'​environnement d’exécution actuel de l'​interpréteur. Les opérateurs de redirection
 +       ​suivants peuvent précéder ou apparaître n'​importe où dans une commande simple ou suivre une commande. Les redirections sont trai‐
 +       tées dans leur ordre d'​apparition,​ de gauche à droite.
 +
 +       ​Toutes les redirections pouvant être précédées par un numéro de descripteur de fichier peuvent aussi être précédées par un mot de
 +       ​la ​ forme  {nom_de_variable}. ​ Dans  ce  cas,  pour chaque opérateur de redirection à part >&- et <&-, l'​interpréteur de commande
 +       ​allouera un descripteur de fichier supérieur ou égal à 10 et l'​affectera ​ à  nom_de_variable. ​ Si  >&​- ​ ou  <&​- ​ est  précédé ​ de
 +       ​{nom_de_variable},​ la valeur de nom_de_variable définit le descripteur de fichier à fermer.
 +
 +       ​Dans ​ les  descriptions ​ suivantes, ​ si le numéro de descripteur de fichier est omis et si le premier caractère de l'​opérateur de
 +       ​redirection est <, la redirection se rapporte à l'​entrée standard (descripteur de fichier 0). Si le premier caractère de l'​opéra‐
 +       teur de redirection est >, la redirection se rapporte à la sortie standard (descripteur de fichier 1).
 +
 +       Le mot qui suit l'​opérateur de redirection dans les descriptions suivantes, à moins qu'il en soit fait état autrement, est soumis
 +       au développement des accolades, du tilde, des paramètres et des variables, à la substitution de commande, au développement arith‐
 +       ​métique, ​ à  la suppression des protections,​ au développement des chemins et au découpage en mots. S'il se développe en plusieurs
 +       mots, bash signale une erreur.
 +
 +       ​Remarquez que l'​ordre des redirections est important. Par exemple, la commande
 +
 +              ls > liste_répertoires 2>&1
 +
 +       ​redirige à la fois la sortie standard et la sortie d'​erreur standard vers le fichier liste_répertoires,​ alors que la commande
 +
 +              ls 2>&1 > liste_répertoires
 +
 +       ne redirige que la sortie standard vers le fichier liste_répertoires,​ car la sortie d'​erreur standard a été dupliquée de la  sor‐
 +       tie standard avant que celle-ci ne soit redirigée vers liste_répertoires.
 +
 +       ​Bash ​ gère plusieurs noms de fichiers de façon particulière,​ lorsqu'​ils sont utilisés dans des redirections,​ comme décrit dans la
 +       table suivante :
 +
 +              /dev/fd/df
 +                     Si df est un entier correct, le descripteur de fichier df est dupliqué.
 +              /dev/stdin
 +                     Le descripteur de fichier 0 est dupliqué.
 +              /dev/stdout
 +                     Le descripteur de fichier 1 est dupliqué.
 +              /dev/stderr
 +                     Le descripteur de fichier 2 est dupliqué.
 +              /​dev/​tcp/​hôte/​port
 +                     Si hôte est un nom de machine ou une adresse Internet corrects et si port est un numéro de port entier ou un nom de
 +                     ​service,​ bash tentera d'​ouvrir la socket TCP correspondante.
 +              /​dev/​udp/​hôte/​port
 +                     Si hôte est un nom de machine ou une adresse Internet corrects et si port est un numéro de port entier ou un nom de
 +                     ​service,​ bash tentera d'​ouvrir la socket UDP correspondante.
 +
 +       Un échec à l'​ouverture ou à la création de fichier conduit à l'​échec de la redirection.
 +
 +       Les redirections utilisant des descripteurs de fichiers supérieurs à 9 doivent être utilisées avec précaution ​ car  des  conflits
 +       ​peuvent survenir avec les descripteurs de fichiers utilisés en interne par l'​interpréteur.
 +
 +       Notez que la commande interne exec peut faire appliquer les redirections à l'​interpréteur de commande en cours.
 +
 +   ​Redirection d'​entrée
 +       ​Une ​ redirection d'​entrée conduit à l'​ouverture en lecture avec le descripteur de fichier numéro n du fichier dont le nom résulte
 +       du développement du mot ou en tant qu'​entrée standard (descripteur de fichier 0) si n n'est pas indiqué.
 +
 +       Le format général des redirections d'​entrée est :
 +
 +              [n]<mot
 +
 +   ​Redirection de sortie
 +       Une redirection de sortie conduit à l'​ouverture en écriture du fichier dont le nom résulte du développement ​ du  mot  avec  comme
 +       ​descripteur de fichier n ou en tant que sortie standard (descripteur de fichier 1) si n n'est pas indiqué. Si le fichier n'​existe
 +       pas, il est créé. S'il existait déjà, sa taille est réduite à zéro.
 +
 +       Le format général des redirections de sortie est le suivant :
 +
 +              [n]>mot
 +
 +       Si l'​opérateur de redirection est > et si l'​option noclobber de la commande interne set est activée, la redirection ​ échouera ​ si
 +       ​le ​ fichier ​ dont le nom résulte du développement du mot existe et est un fichier normal. Si l'​opérateur de redirection est >| ou
 +       ​l'​opérateur > avec l'​option noclobber de la commande interne set n'est pas activée, la redirection sera tentée même si le fichier
 +       dont le nom résulte du développement du mot existe.
 +
 +   Ajout d'une sortie redirigée
 +       ​La ​ redirection ​ de  la  sortie ​ de cette façon conduit à l'​ouverture du fichier dont le nom résulte du développement du mot pour
 +       ​ajouter au descripteur de fichier n ou à la sortie standard (descripteur de fichier 1) si n n'​est ​ pas  indiqué. ​ Si  le  fichier
 +       ​n'​existe pas, il est créé.
 +
 +       Le format général pour les sorties avec ajout est :
 +
 +              [n]>>​mot
 +
 +   ​Redirection de la sortie standard et de la sortie d'​erreur standard
 +       Cette construction permet la redirection simultanée de la sortie standard (descripteur 1) et de la sortie d'​erreur standard (des‐
 +       ​cripteur 2), dans un fichier dont le nom est le résultat du développement du mot.
 +
 +       Il y a deux formes pour rediriger les sortie standard et sortie d'​erreur standard :
 +
 +              &>​mot
 +       et
 +              >&​mot
 +
 +       La première des deux formes est préférée. C'est sémantiquement équivalent à
 +
 +              >mot 2>&1
 +
 +       En utilisant la deuxième forme, mot ne peut pas être développé en nombre ou -. Si c’est le cas, les autres opérateurs de redirec‐
 +       tion s’appliquent (consultez Dédoublement de descripteurs de fichier ci-dessous) pour des raisons de compatibilité.
 +
 +   Ajout de la sortie standard et de la sortie d'​erreur standard
 +       ​Cette ​ construction permet l'​ajout simultané de la sortie standard (descripteur 1) et de la sortie d'​erreur standard (descripteur
 +       2), dans un fichier dont le nom est le résultat du développement du mot.
 +
 +       La forme pour ajouter les sortie standard et sortie d'​erreur standard est :
 +
 +              &>>​mot
 +
 +       ​C'​est sémantiquement équivalent à
 +
 +              >>mot 2>&1
 +
 +       ​(consultez Dédoublement de descripteurs de fichier ci-dessous).
 +
 +   ​Document en ligne
 +       Ce type de redirection commande à l'​interpréteur de lire son entrée de la source actuelle jusqu'​à ce qu'il voie une ligne  conte‐
 +       ​nant ​ seulement ​ le  délimiteur ​ prévu (sans blancs finaux). Toutes les lignes lues jusqu'​à ce point sont ensuite utilisées comme
 +       ​l'​entrée standard pour une commande.
 +
 +       Le format des documents en ligne est le suivant :
 +
 +              <<​[-]mot
 +                      document_en_ligne
 +              délimiteur
 +
 +       Aucun développement des paramètres ou des variables, ni substitution de commande, ni développement arithmétique ​ ou  des  chemins
 +       ​n’est ​ effectué sur le mot. Si un des caractères du mot est protégé, délimiteur est le résultat de la suppression des protections
 +       sur mot et les lignes du document_en_ligne ne sont pas développées. Si  mot  n'​est ​ pas  protégé, ​ toutes ​ les  lignes ​ du  docu‐
 +       ​ment_en_ligne ​ sont  soumises au développement des paramètres,​ à la substitution de commande et au développement arithmétique,​ la
 +       suite de caractères \<​changement de ligne> est ignorée et \ doit être utilisée pour protéger les caractères \, $ et `.
 +
 +       Si l'​opérateur de redirection est <<-, alors les tabulations en tête de chaque ligne sont supprimées de l'​entrée,​ y compris ​ dans
 +       la ligne contenant délimiteur. Cela permet d'​indenter de façon naturelle les documents en ligne au sein des scripts.
 +
 +   ​Chaînes en ligne
 +       Une variante aux documents en ligne, le format est :
 +
 +              <<<​mot
 +
 +       ​Le ​ mot  est  sujet  au développement des accolades, du tilde, des paramètres et des variables, à la substitution de commande, au
 +       ​développement arithmétique et à la suppression des protections. Ni le développement des chemins, ni le découpage ​ en  mots  n’est
 +       ​réalisé. Le résultat est fourni comme une seule chaîne à la commande sur son entrée standard.
 +
 +   ​Dédoublement de descripteurs de fichier
 +       ​L'​opérateur de redirection
 +
 +              [n]<&​mot
 +
 +       ​permet ​ de  dupliquer les descripteurs de fichiers en entrée. Si le mot se transforme en un ou plusieurs chiffres, le descripteur
 +       de fichier noté par n devient une copie de ce descripteur. Si les chiffres du mot ne correspondent pas à un descripteur ouvert en
 +       ​lecture, ​ une erreur de redirection se produit. Si le mot prend la forme -, le descripteur n est fermé. Si n n'est pas mentionné,
 +       ​l'​entrée standard (descripteur 0) est utilisée.
 +
 +       ​L'​opérateur
 +
 +              [n]>&​mot
 +
 +       est utilisé de façon similaire pour dupliquer les descripteurs de sortie. Si n n'est pas explicité, la sortie standard ​ (descrip‐
 +       teur 1) est utilisée. Si les chiffres du mot ne correspondent pas à un descripteur en écriture, une erreur de redirection se pro‐
 +       duit. Si mot est évalué en -, le descripteur de fichier n est fermé. Dans le cas particulier où n est omis et où mot ne se  déve‐
 +       ​loppe ​ pas  en un ou plusieurs chiffres, ou -, les sorties standard et d'​erreur standard sont toutes deux redirigées comme décrit
 +       ​précédemment.
 +
 +   ​Déplacement de descripteurs de fichiers
 +       ​L'​opérateur de redirection
 +
 +              [n]<&​chiffre-
 +
 +       ​déplace le descripteur de fichier chiffre vers le descripteur de fichier n ou sur l'​entrée standard (descripteur de fichier 0) si
 +       n n'est pas indiqué. chiffre est fermé après avoir été dupliqué en n.
 +
 +       De la même façon, l'​opérateur de redirection
 +
 +              [n]>&​chiffre-
 +
 +       ​déplace ​ le  descripteur de fichier chiffre vers le descripteur de fichier n ou sur la sortie standard (descripteur de fichier 1)
 +       si n n'est pas indiqué.
 +
 +   ​Ouverture en Lecture/​Écriture d'un descripteur de fichier
 +       ​L'​opérateur de redirection
 +
 +              [n]<>​mot
 +
 +       ​conduit à l'​ouverture du fichier dont le nom résulte du développement du mot, à la fois en lecture et en écriture et lui  affecte
 +       le descripteur de fichier n ou bien le descripteur 0 si n n'est pas mentionné. Si le fichier n'​existe pas, il est créé.
 +
 +ALIAS
 +       Les alias permettent de substituer une chaîne à un mot lorsqu'​il est utilisé comme premier mot d'une commande simple. L'​interpré‐
 +       teur gère une liste d'​alias qui peuvent être créés et détruits avec les commandes internes alias et unalias (consultez ​ COMMANDES
 +       ​INTERNES ​ DE  L'​INTERPRÉTEUR ci-dessous). L'​interpréteur vérifie si le premier mot de chaque commande simple, si non protégé, est
 +       un alias. Si c'est le cas, ce mot est remplacé par le texte de l'​alias. Les caractères /, $, ` et  =  et  tout  métacaractère ​ de
 +       ​l'​interpréteur ​ ou caractère de protection décrits ci-dessus ne peuvent pas apparaître dans un nom d'​alias. Le texte de remplace‐
 +       ment peut contenir toute entrée correcte pour l'​interpréteur,​ y compris ​ les  métacaractères ​ de  l'​interpréteur. ​ L'​interpréteur
 +       ​vérifie si le premier mot du texte de remplacement est à son tour un alias, mais un mot identique à un alias en cours de dévelop‐
 +       ​pement n'est pas développé une seconde fois. Cela signifie qu'on peut, par exemple, créer un  alias  ls  valant ​ ls  -F  et  bash
 +       ​n'​essaiera ​ pas  de  développer ​ récursivement ​ le  texte de substitution. Si le dernier caractère de la valeur de l'​alias est un
 +       ​blanc,​ alors le prochain mot de commande suivant l'​alias connaîtra aussi le développement d'​alias.
 +
 +       Les alias sont créés et affichés avec la commande alias et supprimés avec la commande unalias.
 +
 +       Il n'​existe pas de mécanisme permettant d'​utiliser des arguments dans le texte de remplacement. S'ils sont nécessaires,​ une fonc‐
 +       tion de l'​interpréteur devrait être utilisée (consultez FONCTIONS ci-dessous).
 +
 +       ​Les ​ alias ne sont pas développés quand l'​interpréteur n'est pas interactif sauf si l'​option expand_aliases de l'​interpréteur est
 +       ​créée par la commande shopt (consultez la description de shopt dans COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous).
 +
 +       Les règles concernant la définition et l'​utilisation des alias sont un peu  confuses. ​ Bash  lit  toujours ​ au  moins  une  ligne
 +       ​d'​entrée ​ complètement ​ avant  d'​exécuter une des commandes de cette ligne. Les alias sont traités lorsque la commande est lue et
 +       non pas lorsqu'​elle est exécutée. Ainsi, une définition d'​alias apparaissant sur la même ligne qu'une autre commande ne prend pas
 +       ​effet ​ avant  la  lecture de la prochaine ligne d'​entrée. Autrement dit, une commande placée à la suite d'une définition d'​alias,​
 +       sur la même ligne ne sera pas affectée par cet alias. Ce comportement est également important lors de l'​exécution des  fonctions.
 +       ​Les ​ alias  sont traités lorsque la définition de la fonction est lue et non pas lors de l'​exécution de cette fonction. Ainsi des
 +       alias définis dans une fonction ne sont pas disponibles avant la fin de l'​exécution de la fonction. Pour  plus  de  tranquillité,​
 +       ​placez ​ toujours ​ les définitions d'​alias sur des lignes isolées et n'​utilisez jamais la commande alias dans les commandes compo‐
 +       ​sées.
 +
 +       Les alias sont surpassés par les fonctions de l'​interpréteur dans la plupart des situations.
 +
 +FONCTIONS
 +       Une fonction de l'​interpréteur,​ définie comme décrit ci-dessus, dans GRAMMAIRE DE L'​INTERPRÉTEUR,​ conserve une suite de commandes
 +       pour exécution ultérieure. Lorsque le nom d'une fonction de l'​interpréteur est utilisée comme un simple nom de commande, la liste
 +       des commandes associées à ce nom de fonction est exécutée. Les fonctions ​ sont  exécutées ​ dans  le  contexte ​ de  l'​interpréteur
 +       ​actuel ; aucun nouveau processus n'est créé pour les interpréter (à la différence d'un script). Lorsqu'​une fonction est exécutée,
 +       les arguments de la fonction deviennent les paramètres positionnels pendant son exécution. Le paramètre spécial # est mis à  jour
 +       ​en ​ conséquence. Le paramètre spécial 0 reste inchangé. Le premier élément de la variable FUNCNAME contient le nom de la fonction
 +       ​pendant son exécution.
 +
 +       Tous les autres aspects de l'​environnement d'​exécution de l'​interpréteur ​ sont  identiques ​ entre  la  fonction ​ et  le  contexte
 +       ​d'​appel, ​ aux  exceptions ​ suivantes : les captures de DEBUG et RETURN (consultez la description de la commande interne trap dans
 +       ​COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous) ne sont pas héritées, à moins que l'​attribut trace ne soit  positionné ​ pour  la
 +       ​fonction ​ (consultez ​ la description de la commande interne declare ci-dessous) ou que l'​option d'​interpréteur -o functrace n'ait
 +       été activée avec la commande interne set (auquel cas toutes les fonctions hériteront des captures de DEBUG et RETURN), et la cap‐
 +       ture ERR n'est pas héritée à moins que l'​option d'​interpréteur -o errtrace n'ait été activée.
 +
 +       Les variables locales d'une fonction peuvent être déclarées avec la commande interne local. Dans le cas général, les variables et
 +       leurs valeurs sont partagées entre la fonction et le contexte d'​appel.
 +
 +       La variable FUNCNEST, si configurée à une valeur numérique strictement positive, définit le niveau maximal d'​imbrication de fonc‐
 +       ​tions. Les invocations de fonctions qui dépassent la limite forceront toute la commande à abandonner.
 +
 +       Si la commande interne return est exécutée dans une fonction, celle-ci se termine et l'​exécution reprend avec la commande suivant
 +       ​l'​appel de fonction. Toute commande associée à la capture de RETURN est exécutée avant que l'​exécution reprenne. Quand une  fonc‐
 +       ​tion ​ se termine, les paramètres positionnels et le paramètre spécial # reprennent les valeurs qu'ils avaient avant l'​appel de la
 +       ​fonction.
 +
 +       Les noms de fonctions et leurs définitions peuvent être affichés avec l'​option -f des commandes internes declare ou typeset. ​ Les
 +       ​options ​ -F  de  declare ou typeset n'​afficheront que les noms de fonctions (et facultativement le fichier source et le numéro de
 +       ​ligne,​ si l'​option d'​interpréteur extdebug est activée). Les fonctions peuvent être exportées avec l'​option ​ -f  de  la  commande
 +       ​interne ​ export, afin d'​être automatiquement définies dans les sous-interpréteurs. Une définition de fonction peut être supprimée
 +       avec l'​option -f de la commande interne unset. Remarquez que les fonctions et variables de l'​interpréteur de  même  nom  pourront
 +       ​induire ​ à  plusieurs éléments de mêmes noms dans l'​environnement passé aux fils de l'​interpréteur. Un soin particulier doit être
 +       pris dans les cas où cela peut conduire à un problème.
 +
 +       Les fonctions peuvent être récursives. La variable FUNCNEST peut être utilisée pour limiter la profondeur de la pile  d'​appel ​ de
 +       la fonction et restreindre le nombre d'​invocations de fonctions. Par défaut, aucune limite n'est imposée quant au nombre d'​appels
 +       ​récursifs.
 +
 +ÉVALUATION ARITHMÉTIQUE
 +       ​L'​interpréteur permet, dans certaines circonstances,​ l'​évaluation d'​expressions arithmétiques (consultez les  commandes ​ internes
 +       ​let ​ et declare ainsi que Développement arithmétique). L'​évaluation est effectuée en utilisant des entiers de longueur fixe, sans
 +       ​vérification du débordement. Néanmoins, la division par 0 est capturée et marquée comme une erreur. Les  opérateurs, ​ leur  prio‐
 +       ​rité, ​ associativité ​ et  leur valeur sont identiques à ceux du langage C. La liste suivante d'​opérateurs est entre opérateurs de
 +       ​niveaux de priorité identiques. Les niveaux sont décrits par ordre de priorité décroissante.
 +
 +       id++ id--
 +              post-incrément et post-décrément de variables
 +       ++id --id
 +              préincrément et prédécrément de variables
 +       - +    moins et plus unaires
 +       ! ~    négations logique et binaire
 +       ​** ​    ​exponentiation
 +       * / %  multiplication,​ division, reste
 +       + -    addition, soustraction
 +       <<​ >> ​ décalage arithmétique à gauche et à droite
 +       <= >= < >
 +              comparaisons
 +       == !=  égalité et différence
 +       & ​     ET binaire
 +       ​^ ​     OU exclusif binaire
 +       ​| ​     OU binaire
 +       && ​    ET logique
 +       ​|| ​    OU logique
 +       ​expr?​expr:​expr
 +              opérateur conditionnel
 +       = *= /= %= += -= <<= >>= &= ^= |=
 +              affectations
 +       expr1 , expr2
 +              virgule
 +
 +       Les variables de l'​interpréteur sont utilisables comme opérandes, le développement des paramètres étant effectué avant  l'​évalua‐
 +       ​tion ​ arithmétique. ​ Dans  une  expression, les variables de l'​interpréteur peuvent également être référencées par leur nom, sans
 +       ​utiliser la syntaxe de développement des paramètres. Une variable d'​interpréteur NULL ou inexistante est évaluée à 0  lorsqu'​elle
 +       ​est ​ consultée ​ par  son nom sans utiliser la syntaxe de développement des paramètres. La valeur d'une variable est évaluée comme
 +       une expression arithmétique lorsqu'​elle est consultée, ou lorsqu'​une valeur lui  est  affecté ​ alors  que  son  attribut ​ integer
 +       ​(entier) ​ a  été  positionné ​ en  utilisant declare -i. Une valeur NULL est évaluée à 0. Une variable d'​interpréteur n'a donc pas
 +       ​besoin d'​avoir son attribut integer positionné pour être utilisable dans un calcul.
 +
 +       Les constantes commençant par 0 sont interprétées comme des nombres octaux. Un en-tête 0x ou 0X indique une valeur ​ hexadécimale.
 +       ​Sinon,​ les nombres ont la forme [base#]n où la base facultative est un nombre décimal entre 2 et 64 représentant la base arithmé‐
 +       tique et n est un nombre exprimé dans cette base. Si la base# est omise, la base 10 est utilisée. En indiquant ​ n,  les  chiffres
 +       ​supérieurs ​ à 9 sont représentés par les lettres minuscules, les lettres majuscules, le @ et le _, dans cet ordre. Si la base est
 +       ​inférieure ou égale à 36 les minuscules et les majuscules sont interchangeables pour représenter les nombres entre 10 et 35.
 +
 +       Les opérateurs sont évalués par ordre de priorité. Les sous-expressions entre parenthèses sont évaluées en premier, ce qui permet
 +       de surpasser les règles de priorité ci-dessus.
 +
 +CONDITIONS
 +       ​Les ​ conditions ​ sont utilisées par la commande composée [[ et les commandes internes test et [ pour vérifier l'​état d'un fichier
 +       et effectuer des comparaisons arithmétiques ou sur des chaînes. Les conditions se forment à  partir ​ des  primitives ​ unaires ​ ou
 +       ​binaires suivantes. Si n'​importe quel argument fichier de l'une des primitives est de la forme /dev/fd/n, alors le descripteur de
 +       ​fichier n est examiné. Si l'​argument fichier de l'une des primitives est parmi /dev/stdin, /dev/stdout ou  /​dev/​stderr, ​ le  des‐
 +       ​cripteur de fichier 0, 1 ou 2, respectivement,​ est examiné.
 +
 +       ​Sauf ​ indication ​ contraire, ​ les primitives relatives aux fichiers suivent les liens symboliques et opèrent sur la cible du lien
 +       ​plutôt que sur le lien lui-même.
 +
 +       ​Lorsqu'​ils sont utilisés avec [[, les opérateurs < et > ordonnent d'un point de vue lexicographique en utilisant ​ les  paramètres
 +       ​linguistiques régionaux actuels. La commande test trie en utilisant l'​ordre ASCII.
 +
 +       -a fichier
 +              Vrai si le fichier existe.
 +       -b fichier
 +              Vrai si le fichier existe et est un fichier spécial bloc.
 +       -c fichier
 +              Vrai si le fichier existe et est un fichier spécial caractère.
 +       -d fichier
 +              Vrai si le fichier existe et est un répertoire.
 +       -e fichier
 +              Vrai si le fichier existe.
 +       -f fichier
 +              Vrai si le fichier existe et est un fichier normal.
 +       -g fichier
 +              Vrai si le fichier existe et a son bit Set-GID positionné.
 +       -h fichier
 +              Vrai si le fichier existe et est un lien symbolique.
 +       -k fichier
 +              Vrai si le fichier existe et a son bit « sticky » positionné.
 +       -p fichier
 +              Vrai si le fichier existe et est un tube nommé (FIFO).
 +       -r fichier
 +              Vrai si le fichier existe et est accessible en lecture.
 +       -s fichier
 +              Vrai si le fichier existe et a une taille strictement positive.
 +       -t df  Vrai si le descripteur de fichier df est ouvert et se rapporte à un terminal.
 +       -u fichier
 +              Vrai si le fichier existe et a son bit Set-UID positionné.
 +       -w fichier
 +              Vrai si le fichier existe et est accessible en écriture.
 +       -x fichier
 +              Vrai si le fichier existe et est exécutable.
 +       -G fichier
 +              Vrai si le fichier existe et appartient au GID effectif du groupe.
 +       -L fichier
 +              Vrai si le fichier existe et est un lien symbolique.
 +       -N fichier
 +              Vrai si le fichier existe et a été modifié depuis sa dernière lecture.
 +       -O fichier
 +              Vrai si le fichier existe et appartient à l'UID effectif de l'​utilisateur.
 +       -S fichier
 +              Vrai si le fichier existe et est une socket.
 +       ​fichier_1 -ef fichier_2
 +              Vrai si le fichier_1 et le fichier_2 se rapportent au même périphérique et ont les mêmes numéros d'​inœuds.
 +       ​fichier_1 -nt fichier_2
 +              Vrai si le fichier_1 est plus récent que le fichier_2 (selon les dates de dernière modification) ou si fichier_1 existe et
 +              non fichier_2.
 +       ​fichier_1 -ot fichier_2
 +              Vrai si le fichier_1 est plus ancien que le fichier_2 ou si fichier_2 existe et non fichier_1.
 +       -o nom_opt
 +              Vrai si l'​option d'​interpréteur nom_opt est activée. Consulter la liste des options ​ ci-dessous ​ dans  la  description ​ de
 +              l'​option -o de la commande interne set.
 +       -v nom_de_variable
 +              Vrai si la variable nom_de_variable de l'​interpréteur est configurée (si une valeur lui a été assignée).
 +       -R nom_de_variable
 +              Vrai si la variable nom_de_variable de l'​interpréteur est configurée et est une référence de nom.
 +       -z chaîne
 +              Vrai si la longueur de la chaîne est nulle.
 +       ​chaîne
 +       -n chaîne
 +              Vrai si la longueur de la chaîne est non nulle.
 +
 +       ​chaîne_1 == chaîne_2
 +       ​chaîne_1 = chaîne_2
 +              Vrai  si  les  deux  chaînes ​ sont égales. Le symbole = devrait être utilisé avec la commande test pour être en conformité
 +              POSIX. Utilisée avec la commande [[, cela réalise une correspondance de motif tel que décrit précédemment (Commandes ​ com‐
 +              posées).
 +
 +       ​chaîne_1 != chaîne_2
 +              Vrai si les deux chaînes sont différentes.
 +
 +       ​chaîne_1 < chaîne_2
 +              Vrai si chaîne_1 se trouve avant chaîne_2 dans l'​ordre lexicographique.
 +
 +       ​chaîne_1 > chaîne_2
 +              Vrai si chaîne_1 se trouve après chaîne_2 dans l'​ordre lexicographique.
 +
 +       arg1 OP arg2
 +              OP  est  l'un des opérateurs suivants -eq, -ne, -lt, -le, -gt ou -ge. Ces opérateurs arithmétiques binaires renvoient vrai
 +              si arg1 est respectivement égal, différent, inférieur, inférieur ou égal, supérieur, supérieur ou égal  à  arg2.  arg1  et
 +              arg2 peuvent être des entiers positifs ou négatifs.
 +
 +DÉVELOPPEMENT DES COMMANDES SIMPLES
 +       ​Lors ​ de  l'​exécution d'une commande simple, l'​interpréteur effectue les développements,​ affectations et redirections suivants de
 +       ​gauche à droite.
 +
 +       ​1. ​    Les mots que l'​analyseur a repéré comme affectations de variables (ceux qui précèdent le nom de la commande) et les  redi‐
 +              rections sont conservées pour un traitement ultérieur.
 +
 +       ​2. ​    ​Les ​ mots  qui  ne sont ni des affectations de variables ni des redirections sont développés. S'il reste des mots après le
 +              développement,​ le premier mot est considéré comme le nom d'une commande et les suivants comme ses arguments.
 +
 +       ​3. ​    Les redirections sont effectuées comme décrit ci-dessus dans REDIRECTIONS.
 +
 +       ​4. ​    Le texte suivant le signe = de chaque affectation de variable est sujet au développement du tilde, des  paramètres, ​ à  la
 +              substitution ​ de  commande, ​ au  développement ​ arithmétique et à la suppression des protections avant d'​être affecté à la
 +              variable.
 +
 +       Si aucun nom de commande ne résulte des précédentes opérations,​ les affectations de variables modifient l'​environnement actuel de
 +       ​l'​interpréteur. Sinon les variables sont ajoutées à l'​environnement de la commande exécutée et n'​affectent pas l'​environnement de
 +       ​l'​interpréteur actuel. Si l'une des tentatives d'​affectation concerne une variable en lecture seule, une erreur se produit et  la
 +       ​commande termine avec un état différent de zéro.
 +
 +       ​Si ​ aucun  nom de commande n'est obtenu, les redirections sont effectuées mais ne modifient pas l'​environnement de l'​interpréteur
 +       ​actuel. Une erreur de redirection conduit à la terminaison de la commande avec un état différent de zéro.
 +
 +       ​S'​il reste un nom de commande après le développement,​ l'​exécution a lieu comme décrit ci-dessous. Sinon la commande ​ termine. ​ Si
 +       ​l'​un ​ des  développements contient une substitution de commande, l'​état final de la commande est l'​état final de la dernière sub‐
 +       ​stitution de commande effectuée. S'il n'y avait aucune substitution de commande, la commande termine avec un état de zéro.
 +
 +EXÉCUTION DES COMMANDES
 +       ​Après le découpage de la ligne de commande en mots, si le résultat est une commande simple suivie d'une liste facultative d'​argu‐
 +       ​ments,​ les actions suivantes sont effectuées.
 +
 +       ​Si ​ le  nom  de  la  commande ne contient aucune barre oblique, l'​interpréteur tente de la localiser. S'il existe une fonction de
 +       ​l'​interpréteur de ce nom, elle est appelée comme nous l'​avons vu ci-dessus dans FONCTIONS. Si le nom n'est pas celui d'​une ​ fonc‐
 +       tion, l'​interpréteur le recherche dans la liste des commandes internes. Si une correspondance est trouvée, cette commande interne
 +       est appelée.
 +
 +       Si le nom n'est ni celui d'une fonction de l'​interpréteur,​ ni celui d'une commande interne et  s'​il ​ ne  contient ​ pas  de  barre
 +       ​oblique,​ bash va chercher dans chacun des éléments de PATH un répertoire contenant un fichier exécutable du nom désiré. Bash uti‐
 +       lise une table de hachage pour mémoriser les chemins d'​accès complets aux fichiers exécutables (consultez la commande ​ hash  dans
 +       ​COMMANDES ​ INTERNES ​ DE L'​INTERPRÉTEUR ci-dessous). Une recherche complète dans les répertoires du PATH n'est effectuée que si la
 +       ​commande ne se trouve pas dans la table de hachage. Si la recherche est infructueuse,​ l'​interpréteur recherche ​ une  fonction ​ de
 +       ​l'​interpréteur ​ appelée ​ command_not_found_handle. ​ Si  cette  fonction ​ existe, elle est appelée avec pour arguments la commande
 +       ​d'​origine et ses arguments, et l'​état final de la fonction devient l'​état final de l'​interpréteur. Si cette  fonction ​ n'​est ​ pas
 +       ​définie,​ l'​interpréteur affiche un message d'​erreur et renvoie un état final de 127.
 +
 +       ​Si ​ la  recherche ​ réussit ​ ou si le nom de la commande contient une ou plusieurs barres obliques, l'​interpréteur exécute le pro‐
 +       ​gramme demandé dans un environnement d'​exécution distinct. L'​argument 0 est configuré au nom indiqué et les  éventuels ​ arguments
 +       ​restants de la commande sont configurés aux arguments indiqués.
 +
 +       ​Si ​ cette  exécution ​ échoue parce que le programme n'est pas un exécutable et si le fichier n'est pas un répertoire,​ il est pris
 +       pour un script, un fichier contenant des commandes d'​interpréteur. Un sous-interpréteur est alors créé pour exécuter ​ ce  script.
 +       ​Ce ​ sous-interpréteur ​ se réinitialisera lui-même, comme si un nouvel interpréteur avait été appelé pour exécuter le script, à la
 +       ​différence qu'il continuera à mémoriser l'​emplacement des commandes connues de son parent (consultez hash dans COMMANDES INTERNES
 +       DE L'​INTERPRÉTEUR ci-dessous).
 +
 +       Si le programme est un fichier commençant par #!, le reste de la première ligne indique un interprète pour ce programme. L'​inter‐
 +       ​préteur se chargera d'​exécuter l'​interprète indiqué sur les systèmes d'​exploitation qui ne gèrent pas eux-mêmes ce format ​ d'​exé‐
 +       ​cutable. ​ Les  arguments ​ de  l'​interprète consistent en un seul argument facultatif fourni sur la première ligne du fichier à la
 +       suite du nom de l'​interprète,​ suivi du nom du programme, suivi des arguments de la commande s'il y en a.
 +
 +ENVIRONNEMENT D'​EXÉCUTION DES COMMANDES
 +       ​L'​interpréteur fournit un environnement d'​exécution consistant en l'​ensemble des éléments suivants :
 +
 +       ​· ​     les fichiers ouverts hérités par l'​interpréteur à son appel et modifiés ​ par  les  redirections ​ fournies ​ à  la  commande
 +              interne exec ;
 +
 +       ​· ​     le répertoire de travail actuel comme configuré par cd, pushd ou popd ou hérité par l'​interpréteur à son appel ;
 +
 +       ​· ​     le masque de création de fichier comme configuré par umask ou hérité du parent de l'​interpréteur ;
 +
 +       ​· ​     les captures actuelles configurées par trap ;
 +
 +       ​· ​     les paramètres de l'​interpréteur configurés par des affectations de variables, avec la commande interne set, ou hérités de
 +              l'​environnement du parent de l'​interpréteur ;
 +
 +       ​· ​     les fonctions de l'​interpréteur définies lors de l'​exécution ou héritées de l'​environnement du parent de l'​interpréteur ;
 +
 +       ​· ​     les options activées à l'​appel (par défaut ou avec les arguments de ligne de commande) ou par set ;
 +
 +       ​· ​     les options activées par shopt ;
 +
 +       ​· ​     les alias de l'​interpréteur définies par la commande alias ;
 +
 +       ​· ​     les ID des divers processus, y compris ceux des tâches en arrière-plan,​ la valeur de $$ et la valeur de PPID.
 +
 +       ​Lorsqu'​une commande différente d'une commande interne ou d'une fonction de l'​interpréteur doit être exécutée, ​ elle  est  appelée
 +       ​dans ​ un  environnement ​ d'​exécution ​ séparé ​ constitué ​ de  ce qui suit. Sauf indication contraire, les valeurs sont héritées de
 +       ​l'​environnement de l'​interpréteur :
 +
 +
 +       ​· ​     les fichiers ouverts de l'​interpréteur,​ ainsi que toutes modifications et ajouts précisés par les redirections de la  com‐
 +              mande ;
 +
 +       ​· ​     le répertoire de travail actuel ;
 +
 +       ​· ​     le masque de création de fichiers ;
 +
 +       ​· ​     les  variables et les fonctions de l'​interpréteur marquées pour l'​exportation,​ ainsi que les variables exportées spéciale‐
 +              ment pour la commande ;
 +
 +       ​· ​     les captures interceptées par l'​interpréteur sont réinitialisées aux valeurs héritées de l'​interpréteur parent et les cap‐
 +              tures ignorées par l'​interpréteur restent ignorées.
 +
 +       Une commande appelée dans un environnement distinct ne peut pas affecter l'​environnement d'​exécution de l'​interpréteur.
 +
 +       ​Les ​ substitutions de commande, les commandes groupées entre parenthèses et les commandes asynchrones sont appelées dans un envi‐
 +       ​ronnement de sous-interpréteur qui est une copie de celui de l'​interpréteur,​ mais les captures ​ interceptées ​ par  l'​interpréteur
 +       sont réinitialisées aux valeurs que l'​interpréteur avait héritées de son parent à son appel. Les commandes internes appelées dans
 +       une conduite sont aussi exécutées dans un environnement de sous-interpréteur. Les modifications apportées à l'​environnement ​ d'un
 +       ​sous-interpréteur n'​affectent aucunement l'​environnement d'​exécution de l'​interpréteur.
 +
 +       ​Les ​ sous-interpréteurs ​ engendrés pour exécuter les substitutions de commande héritent des valeurs de l'​option -e de l'​interpré‐
 +       teur parent. En dehors du mode posix, bash efface l'​option -e de tels sous-interpréteurs.
 +
 +       Si une commande est suivie par un & et que le contrôle des tâches n'est pas actif, l'​entrée standard par défaut ​ de  la  commande
 +       ​est ​ le  fichier ​ vide /dev/null. Sinon, la commande appelée hérite des descripteurs de fichiers de l'​interpréteur appelant comme
 +       ​modifiés par les redirections.
 +
 +ENVIRONNEMENT
 +       Quand un programme est appelé, il reçoit un tableau de chaînes que l'on appelle environnement. Il s'agit d'une liste  de  couples
 +       ​nom-valeur,​ de la forme nom=valeur.
 +
 +       ​L'​interpréteur ​ fournit ​ plusieurs façons de gérer l'​environnement. Au démarrage, l'​interpréteur analyse son propre environnement
 +       et crée un paramètre pour chaque nom trouvé, en le marquant comme exportable vers les processus ​ fils.  Les  commandes ​ exécutées
 +       ​héritent ​ de  cet  environnement. ​ Les  commandes export et declare -x permettent d'​ajouter ou de supprimer des paramètres ou des
 +       ​fonctions de l'​environnement. Si la valeur d'un paramètre de l'​environnement est modifiée, la nouvelle valeur devient une  partie
 +       de l'​environnement et elle remplace l'​ancienne. L'​environnement hérité par toute commande exécutée est l'​environnement initial de
 +       ​l'​interpréteur,​ dont les valeurs peuvent être modifiées dans l'​interpréteur,​ sans les éléments supprimés par la  commande ​ unset,
 +       et avec les éléments ajoutés par les commandes export et declare -x.
 +
 +       ​L'​environnement ​ d'​une ​ commande ​ simple ou d'une fonction peut être augmenté temporairement,​ en la faisant précéder des affecta‐
 +       tions de paramètres,​ comme nous l'​avons vu ci-dessus dans PARAMÈTRES. Ces affectations ne concernent que l'​environnement ​ vu  par
 +       cette commande.
 +
 +       ​Si ​ l'​option ​ -k  est configurée (consultez ci-dessous la commande interne set), alors toutes les affectations de paramètres sont
 +       ​placées dans l'​environnement d'une commande exécutée et non seulement celles qui précèdent son nom.
 +
 +       Quand bash appelle une commande externe, la variable _ est configurée en chemin d'​accès complet à  cette  commande ​ et  elle  est
 +       ​transmise dans l'​environnement.
 +
 +ÉTAT FINAL
 +       ​L'​état final d'une commande exécutée est la valeur renvoyée par l'​appel système waitpid ou fonction équivalente. Les états finaux
 +       ​prennent leurs valeurs entre 0 et 255, néanmoins, comme expliqué ci-dessous, l'​interpréteur peut utiliser les valeurs supérieures
 +       ​à ​ 125  de façon particulière. Les états finaux des commandes internes et composées sont également limités à cet intervalle. Sous
 +       ​certaines conditions, l'​interpréteur utilisera des valeurs particulières pour indiquer des modes d'​échec particuliers.
 +
 +       Du point de vue de l'​interpréteur,​ une commande qui termine avec état final valant zéro a réussi. Un état final de  zéro  indique
 +       ​le ​ succès. ​ Un état final différent de zéro indique un échec. Quand une commande se termine par un signal mortel N, bash utilise
 +       la valeur 128+N comme état final.
 +
 +       Si une commande n'est pas trouvée, le processus fils créé pour l'​exécuter renvoie un état de 127. Si  une  commande ​ est  trouvée
 +       mais pas exécutable,​ la valeur renvoyée est 126.
 +
 +       ​Si ​ une  commande ​ échoue à cause d'une erreur survenue lors d'un développement ou des redirections,​ l'​état final est strictement
 +       plus grand que zéro.
 +
 +       Les commandes internes renvoient un état de 0 (vrai) si réussies et une valeur différente de zéro (faux) si une erreur se produit
 +       ​pendant leur exécution. Toutes les commandes internes renvoient un état final de 2 pour indiquer un usage incorrect.
 +
 +       ​Bash ​ lui-même renvoie l'​état final de la dernière commande exécutée, à moins qu'une erreur de syntaxe ne se produise, auquel cas
 +       il termine avec une valeur différente de zéro. Consultez aussi ci-dessous la commande interne exit.
 +
 +SIGNAUX
 +       Quand bash fonctionne de façon interactive,​ en absence de toute capture, il ignore SIGTERM (c'est ainsi que kill 0 ne tue pas  un
 +       ​interpréteur interactif) et SIGINT est intercepté et géré (c'est ainsi que la commande interne wait est interruptible). Dans tous
 +       les cas, bash ignore SIGQUIT. Si le contrôle des tâches est actif, bash ignore SIGTTIN, SIGTTOU et SIGTSTP.
 +
 +       Les commandes externes lancées par bash ont les gestionnaires de signaux configurés aux valeurs héritées ​ par  l'​interpréteur ​ de
 +       ​son ​ parent. ​ Quand  le contrôle des tâches n'est pas actif, les tâches en arrière-plan ignorent les signaux SIGINT et SIGQUIT en
 +       plus des gestionnaires hérités. Les commandes exécutées en tant que résultat d'une substitution de commande ignorent les  signaux
 +       de contrôle de tâches émis par le clavier SIGTTIN, SIGTTOU et SIGTSTP.
 +
 +       ​Par ​ défaut, ​ l'​interpréteur ​ termine à la réception de SIGHUP. Avant de terminer, un interpréteur interactif renvoie le SIGHUP à
 +       ​toutes les tâches en cours ou suspendues. Les tâches suspendues reçoivent aussi SIGCONT pour s'​assurer qu'​elles reçoivent bien le
 +       ​SIGHUP. ​ Pour  empêcher ​ l'​interpréteur d'​envoyer le signal à une tâche particulière,​ elle devrait être supprimée de la table des
 +       ​tâches avec la commande interne disown (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous) ou marquée comme  exemptée ​ de
 +       ​SIGHUP en utilisant disown -h.
 +
 +       ​Si ​ l'​option ​ d'​interpréteur ​ huponexit a été configurée avec la fonction shopt, bash envoie un signal SIGHUP à toutes les tâches
 +       ​lorsqu'​un interpréteur de commandes de connexion interactif termine.
 +
 +       ​Lorsque bash attend qu'une commande se termine et qu'il reçoit un signal pour lequel une capture a été configurée,​ la capture ​ ne
 +       ​sera ​ pas  exécutée tant que la commande n'est pas terminée. Lorsque bash attend la fin d'une commande asynchrone par la commande
 +       ​interne wait, la réception d'un signal pour lequel une capture a été configurée conduira à un  retour ​ immédiat ​ de  la  commande
 +       ​interne wait avec un état final supérieur à 128, à la suite de quoi la capture est immédiatement exécutée.
 +
 +CONTRÔLE DES TÂCHES
 +       Le contrôle des tâches se réfère à la capacité de suspendre (suspend) sélectivement l'​exécution d'un processus et de la reprendre
 +       ​(resume) ultérieurement. L'​utilisateur bénéficie généralement de cette possibilité grâce à l'​action conjointe du pilote de termi‐
 +       nal du noyau de système d'​exploitation et de bash.
 +
 +       ​L'​interpréteur ​ associe ​ une tâche à chaque conduite. Il maintient une table des tâches en cours d'​exécution,​ cette table pouvant
 +       être affichée avec la commande jobs. Quand bash lance une tâche de façon asynchrone (en arrière-plan),​ il affiche une  ligne  qui
 +       ​ressemble à :
 +
 +              [1] 25647
 +
 +       Cette ligne indique que la tâche est la tâche numéro 1 et que le PID du dernier processus dans la conduite associée à cette tâche
 +       est 25647. Tous les processus d'une même conduite font partie de la même tâche. Bash utilise la notion de  tâche ​ comme  base  du
 +       ​contrôle des tâches.
 +
 +       ​Pour ​ faciliter ​ l'​implémentation ​ d'une interface utilisateur pour le contrôle de tâches, le système introduit la notion d'ID de
 +       ​groupe de processus associés à un terminal. Les membres de ce groupe de processus (processus dont le  GID  est  égal  au  Process
 +       Group ID du terminal actuel) reçoivent les signaux émis par le clavier comme SIGINT. Ces processus sont dits au premier plan. Les
 +       ​processus en arrière-plan sont ceux dont le Process-GID diffère de celui du terminal ; ils sont indifférents aux signaux émis par
 +       ​le ​ clavier. Seuls les processus au premier plan peuvent lire depuis le terminal ou, si l'​utilisateur l'​indique avec stty tostop,
 +       y écrire. Les processus en arrière-plan qui tentent une lecture (ou une écriture si stty  tostop ​ est  actif) ​ dans  le  terminal
 +       ​reçoivent un signal SIGTTIN (SIGTTOU) émis par le pilote du terminal du noyau, qui, sauf interception,​ suspend le processus.
 +
 +       ​Si ​ le  système d'​exploitation sur lequel bash fonctionne permet le contrôle des tâches, bash fournit des outils pour l'​utiliser.
 +       La frappe d'un caractère de suspension (généralement ^Z, Contrôle-Z) pendant l'​exécution d'un processus conduit à  la  suspension
 +       ​de ​ celui-ci ​ et redonne la main à bash. La frappe d'un caractère de suspension différée (généralement ^Y, Contrôle-Y) conduira à
 +       la suspension du processus au moment où il tentera de lire des saisies depuis le terminal et la main reviendra à bash. L'​utilisa‐
 +       ​teur ​ peut alors manipuler l'​état de cette tâche en utilisant la commande bg (background = arrière-plan) pour en continuer l'​exé‐
 +       ​cution en arrière-plan,​ la commande fg (foreground = premier plan) pour la continuer au premier plan ou encore la  commande ​ kill
 +       pour la tuer. Un ^Z s'​applique immédiatement et a pour effet de bord d'​éliminer les sorties et saisies en attente.
 +
 +       ​Plusieurs ​ façons ​ permettent ​ de se rapporter à une tâche. Le caractère % introduit une spécification de tâche (jobspec). Il est
 +       ​possible de se rapporter à la tâche numéro n avec %n. Il est également possible de se rapporter à une tâche en utilisant un  pré‐
 +       ​fixe ​ du nom utilisé pour la lancer ou une sous-chaîne qui apparaît dans sa ligne de commande. Par exemple, %ce se rapporte à une
 +       ​tâche suspendue nommée ce. Si ce préfixe correspond à plusieurs tâches, bash signale une erreur. Utiliser %?ce, d'un autre  côté,
 +       se rapporte à toute tâche contenant la chaîne ce dans sa ligne de commande. Si la sous-chaîne correspond à plusieurs tâches, bash
 +       ​signale une erreur. Les symboles %% et %+ se rapportent à la notion de tâche actuelle de l'​interpréteur,​ c'​est-à-dire la dernière
 +       ​tâche suspendue alors qu'​elle était au premier plan ou démarrée en arrière-plan. La tâche précédente peut être désignée en utili‐
 +       sant %-. Si une seule tâche existe, %+ et %- peuvent tous deux être utilisés pour se rapporter à cette tâche. Dans les affichages
 +       ​se ​ rapportant ​ aux tâches (par exemple la sortie de la commande jobs), la tâche actuelle est toujours annotée d'un + et la tâche
 +       ​précédente d'un -. Un simple % (non accompagné de spécification de tâche) se rapporte également à la tâche actuelle.
 +
 +       Il suffit de nommer une tâche pour la ramener au premier ​ plan :  %1  est  synonyme ​ de  « fg  %1 »  et  ramène ​ la  tâche ​ 1  de
 +       ​l'​arrière-plan vers le premier plan. De même, « %1 & » reprend la tâche 1 en arrière-plan,​ de façon équivalente à « bg %1 ».
 +
 +       ​L'​interpréteur ​ est  immédiatement ​ prévenu ​ lorsqu'​une ​ tâche ​ change d'​état. Normalement bash attend d'​être prêt à afficher son
 +       ​interpréteur avant de signaler des changements dans l'​état des tâches, afin de ne pas interrompre toute autre sortie. Si l'​option
 +       ​-b ​ de  la  commande interne set est activée, bash signalera de telles modifications immédiatement. Toute capture sur SIGCHLD est
 +       ​exécutée pour chaque fils qui se termine.
 +
 +       Si une tentative visant à terminer bash est réalisée alors que des tâches sont suspendues (ou, si l'​option d'​interpréteur ​ check‐
 +       ​jobs ​ a  été activée par la commande interne shopt, en cours d'​exécution),​ l'​interpréteur affiche un message d'​avertissement,​ et,
 +       si l'​option d'​interpréteur checkjobs est activée, affiche la liste les tâches et leurs états. La commande jobs  peut  alors  être
 +       ​utilisée ​ pour  examiner ​ leur état. Si une deuxième tentative est faite pour terminer sans commande intercalaire,​ l'​interpréteur
 +       ​n'​affiche aucun autre avertissement et les tâches suspendues sont terminées.
 +
 +INVITES
 +       Quand il est exécuté de façon interactive,​ bash affiche l'​invite de base PS1 dès qu'il est prêt à lire une commande ​ et  l'​invite
 +       ​secondaire ​ PS2  quand  il  a  besoin ​ de  plus  de  saisies pour exécuter une commande. Bash permet de personnaliser ces chaînes
 +       ​d'​invite,​ en insérant un certain nombre de caractères spéciaux protégés par des contre-obliques qui sont décodés comme suit :
 +              \a     un caractère ASCII d'​alarme (07) ;
 +              \d     la date au format « Jour_de_la_semaine Mois Quantième » (par exemple : « Tue May 26 ») ;
 +              \D{format}
 +                     le format est passé à strftime(3) et le résultat est inséré dans la chaîne de l'​invite ; un  format ​ vide  implique
 +                     une représentation du temps spécifique aux paramètres linguistiques régionaux. Les accolades sont nécessaires ;
 +              \e     un caractère de protection ASCII (033) ;
 +              \h     le nom de la machine, jusqu'​au premier point « . » ;
 +              \H     le nom de la machine ;
 +              \j     le nombre de tâches actuellement gérées par l'​interpréteur ;
 +              \l     le nom de base du nom de périphérique de terminal de l'​interpréteur ;
 +              \n     ​changement de ligne ;
 +              \r     ​retour chariot (« carriage return ») ;
 +              \s     le nom de l'​interpréteur,​ c'​est-à-dire le nom de base de $0 (la portion suivant la dernière barre oblique) ;
 +              \t     ​l'​heure actuelle au format HH:MM:SS sur 24 heures ;
 +              \T     ​l'​heure actuelle au format HH:MM:SS sur 12 heures ;
 +              \@     ​l'​heure actuelle au format HH:MM sur 12 heures ;
 +              \A     ​l'​heure actuelle au format HH:MM sur 24 heures ;
 +              \u     le nom de l'​utilisateur ;
 +              \v     la version de bash (par exemple, 2.00) ;
 +              \V     le numéro de version complet (avec niveau de correctifs) de bash, (par exemple, 2.00.0) ;
 +              \w     ​le ​ répertoire ​ de  travail ​ actuel, avec $HOME abrégé en tilde « ~ » (utilise la valeur de la variable PROMPT_DIR‐
 +                     TRIM) ;
 +              \W     le nom de base du répertoire de travail actuel, avec $HOME abrégé en tilde (« ~ ») ;
 +              \!     le numéro d'​historique de la commande ;
 +              \#     le numéro de la commande ;
 +              \$     # si l'UID effectif est 0, $ sinon ;
 +              \nnn   le caractère de code octal nnn ;
 +              \\     une contre-oblique ;
 +              \[     ​débute une suite de caractères non imprimables,​ qui peuvent être utilisés pour inclure une suite de  caractères ​ de
 +                     ​contrôle du terminal dans l'​interpréteur ;
 +              \]     finit une suite de caractères non imprimables.
 +
 +       Le numéro de commande et le numéro d'​historique sont généralement différents : le numéro d'​historique d'une commande correspond à
 +       sa position dans la file d'​historique qui peut contenir des commandes relues depuis cette  liste  (consultez ​ HISTORIQUE ​ ci-des‐
 +       ​sous), ​ alors  que  le  numéro de commande est simplement une position dans la suite de commandes exécutées depuis le début de la
 +       ​session d'​interpréteur actuelle. Après que la chaîne ait été décodée, elle est soumise au développement des paramètres,​ à la sub‐
 +       ​stitution ​ de commande, au développement arithmétique,​ au découpage des mots et à la suppression des protections,​ selon la valeur
 +       de l'​option d'​interpréteur promptvars (consultez la description de shopt dans COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous).
 +
 +READLINE
 +       ​C'​est la bibliothèque qui gère la lecture des saisies lors des sessions interactives de  l'​interpréteur, ​ à  moins  que  l'​option
 +       ​--noediting ​ ne  soit  indiquée à l'​appel de l'​interpréteur. Par défaut les commandes d'​édition de ligne sont similaires à celles
 +       ​d'​Emacs. Une interface d'​édition de ligne dans le style vi est aussi disponible. Pour arrêter l'​édition de ligne après le  démar‐
 +       ​rage ​ de l'​interpréteur,​ utiliser l'​option +o emacs ou +o vi de la commande interne set (consultez COMMANDES INTERNES DE L'​INTER‐
 +       ​PRÉTEUR ci-dessous).
 +
 +   ​Notation readline
 +       Dans ce paragraphe on utilisera la notation « à la Emacs » pour indiquer les frappes de touches. Les touches Contrôle sont notées
 +       ​C-touche, ​ par  exemple ​ C-n  signifie Contrôle-N. De même, les touches Méta sont notées par M-touche, ainsi M-x signifie Méta-X.
 +       (Sur les claviers sans touches Méta, M-x signifie ESC x, c'​est-à-dire presser la touche d'​Échappement puis la touche x. Cela fait
 +       ​de ​ ESC le préfixe méta. La combinaison M-C-x signifie ESC-Contrôle-x ou encore presser la touche d'​Échappement puis maintenir la
 +       ​touche Contrôle enfoncée tout en pressant la touche x.)
 +
 +       Les commandes readline peuvent recevoir des arguments numériques,​ qui fonctionnent en règle générale comme compteurs ​ de  répéti‐
 +       ​tions. ​ Parfois, ​ cependant, c'est le signe de l'​argument qui est significatif. L'​utilisation d'un argument négatif pour une com‐
 +       mande agissant dans un sens donné (par exemple kill-line) conduit cette commande à agir dans la direction opposée. Les  commandes
 +       dont le comportement avec les arguments diffère de cela sont indiquées ci-dessous.
 +
 +       ​Lorsqu'​une ​ commande est indiquée comme détruisant du texte, le texte effacé est en fait sauvegardé pour une éventuelle récupéra‐
 +       tion ultérieure (« yanking »). Il est conservé dans un tampon circulaire (« kill ring »). Les suppressions successives conduisent
 +       ​à ​ l'​accumulation ​ du texte en un seul bloc qui peut être récupéré en une fois. Les commandes non destructives séparent les blocs
 +       de textes dans le tampon circulaire.
 +
 +   ​Initialisation de readline
 +       ​Readline est personnalisé en plaçant des commandes dans un fichier d'​initialisation (le fichier inputrc). Le nom  de  ce  fichier
 +       ​est ​ pris  dans  la  variable ​ de  l'​interpréteur ​ INPUTRC. ​ Si cette variable est inexistante,​ le nom par défaut est ~/.inputrc.
 +       ​Lorsqu'​un programme utilisant la bibliothèque readline démarre, le fichier d'​initialisation est lu et les raccourcis ​ clavier ​ et
 +       ​les ​ variables ​ sont mis en place. Il n'y a que quelques constructions élémentaires possibles dans le fichier d'​initialisation de
 +       ​readline. Les lignes blanches sont ignorées. Les lignes commençant par # sont des  commentaires. ​ Les  lignes ​ commençant ​ par  $
 +       ​indiquent des constructions conditionnelles. Les autres lignes indiquent des raccourcis clavier et des paramétrages de variables.
 +
 +       ​Les ​ raccourcis ​ clavier par défaut peuvent être modifiés par un fichier inputrc. D'​autres programmes qui utilisent cette biblio‐
 +       ​thèque peuvent ajouter leurs propres commandes et raccourcis.
 +
 +       Par exemple, en plaçant
 +
 +              M-Control-u:​ universal-argument
 +       ou
 +              C-Meta-u: universal-argument
 +       dans le fichier inputrc, on associera la suite de touches M-C-u à la commande readline universal-argument.
 +
 +       Les caractères symboliques suivants sont acceptés : RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE et TAB.
 +
 +       En plus des noms de commandes, readline permet d'​associer à une touche une chaîne de  caractères ​ qui  sera  insérée ​ lorsque ​ la
 +       ​touche est pressée (une macro).
 +
 +   ​Raccourcis clavier readline
 +       ​La ​ syntaxe ​ de définition des raccourcis clavier dans le fichier inputrc est simple. Tout ce qui est nécessaire est le nom de la
 +       ​commande ou le texte d'une macro et la suite de touches à laquelle il faut l'​associer. Les noms de touches peuvent être  indiqués
 +       de l'une des deux façons : comme un nom de touche symbolique, éventuellement précédé des préfixes Meta- ou Control- ou sous forme
 +       ​d'​une suite de touches.
 +
 +       En utilisant la forme touche:​nom_de_fonction ou macro, touche est le nom de la touche en anglais. Par exemple :
 +
 +              Control-u: universal-argument
 +              Meta-Rubout:​ backward-kill-word
 +              Control-o: "> sortie"​
 +
 +       Dans l'​exemple ci-dessus, C-u est associé à la fonction universal-argument,​ M-DEL à  la  fonction ​ backward-kill-word ​ et  C-o  à
 +       ​l'​exécution de la macro exprimée dans la partie gauche (c'​est-à-dire,​ insérer le texte « > sortie » sur la ligne).
 +
 +       ​Avec ​ la  seconde forme, "​touches":​nom_de_fonction ou macro, touches diffère de touche ci-dessus en ce que les chaînes notant une
 +       suite complète de touches peuvent être indiquées en plaçant la suite  entre  guillemets ​ doubles. ​ Certaines ​ suites ​ de  touches
 +       ​d'​Échappement ​ dans  le  style GNU Emacs peuvent être utilisées, comme dans l'​exemple suivant, mais les noms de caractères symbo‐
 +       ​liques ne sont pas reconnus.
 +
 +              "​\C-u":​ universal-argument
 +              "​\C-x\C-r":​ re-read-init-file
 +              "​\e[11~":​ "​Function Key 1"
 +
 +       Dans cet exemple, C-u est à nouveau associé à la fonction universal-argument,​ C-x C-r à la fonction re-read-init-file et ESC [  1
 +       1 ~ à l'​insertion du texte « Function Key 1 ».
 +
 +       Le jeu complet des suites de caractères de protection du style GNU Emacs est :
 +              \C-    préfixe Contrôle ;
 +              \M-    préfixe Méta ;
 +              \e     ​caractère de protection ;
 +              \\     ​contre-oblique ;
 +              \" ​    un guillemet " littéral ;
 +              \' ​    un guillemet ' littéral.
 +
 +       ​En ​ plus  des suites de caractères de protection dans le style GNU Emacs, un second jeu de suites de caractères de protection par
 +       ​contre-obliques est disponible :
 +              \a     ​alerte (alarme) ;
 +              \b     ​effacement arrière (« backspace ») ;
 +              \d     ​effacement ;
 +              \f     saut de page (« form feed ») ;
 +              \n     ​changement de ligne ;
 +              \r     ​retour chariot (« carriage return ») ;
 +              \t     ​tabulation horizontale ;
 +              \v     ​tabulation verticale ;
 +              \nnn   le caractère 8 bits dont la valeur octale est nnn (un à trois chiffres) ;
 +              \xHH   le caractère 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ;
 +
 +       ​Lorsqu'​on saisit le texte d'une macro, il faut utiliser des guillemets simples ou doubles ​ pour  indiquer ​ la  définition ​ de  la
 +       ​macro. ​ Les  textes ​ non  protégés ​ sont  considérés ​ comme des noms de fonctions. Dans le corps de la macro, les protections par
 +       ​contre-oblique décrites ci-dessus sont développées. La contre-oblique protégera tout autre caractère dans le texte de la macro, y
 +       ​compris " et '.
 +
 +       ​Bash ​ permet ​ d'​afficher ou de modifier les raccourcis clavier readline avec la commande interne bind. On peut basculer d'un mode
 +       ​d'​édition à l'​autre en mode interactif en utilisant l'​option -o de la commande ​ interne ​ set  (consultez ​ COMMANDES ​ INTERNES ​ DE
 +       ​L'​INTERPRÉTEUR ci-dessous).
 +
 +   ​Variables de readline
 +       ​Readline dispose de variables permettant de personnaliser encore plus son comportement. Une variable peut être configurée dans le
 +       ​fichier inputrc avec une affectation de la forme
 +
 +              set nom_de_variable valeur
 +
 +       Sauf indication contraire, les variables de readline prennent les valeurs On ou Off (la casse étant sans importance). Les noms de
 +       ​variables ​ non  reconnues ​ sont  ignorés. ​ Lorsqu'​une ​ valeur ​ de variable est lue, les variables vides ou de valeur NULL, « on »
 +       ​(insensible à la casse) et « 1 » sont équivalentes à On. Toutes les autres valeurs sont équivalentes ​ à  Off.  Les  variables ​ et
 +       leurs valeurs par défaut, sont :
 +
 +       ​bell-style (audible)
 +              Cette  variable ​ commande ​ readline ​ lorsqu'​il faut déclencher l'​alarme du terminal. Si configurée à none, readline n'​émet
 +              jamais d'​alarme. Si configurée à visible, readline utilise une alarme visuelle s'il y en a une disponible. Si configurée à
 +              audible, readline essaie de faire sonner l'​alarme du terminal.
 +       ​bind-tty-special-chars (On)
 +              Si configurée à On, readline tente d'​associer les caractères de contrôle traités spécialement par le pilote de terminal du
 +              noyau à leurs équivalents readline.
 +       ​colored-stats (Off)
 +              Si configurée à On, readline affiche les complètements possibles en utilisant des couleurs différentes pour indiquer ​ leur
 +              type de fichier. Les définitions de couleur sont prises dans la valeur de la variable d’environnement LS_COLORS.
 +       ​comment-begin (« # »)
 +              Cette chaîne est insérée quand la commande readline insert-comment est exécutée. Cette commande est associée à M-# en mode
 +              Emacs et à # en mode de commande vi.
 +       ​completion-ignore-case (Off)
 +              Si configurée à On, readline effectue les correspondances et complètements de noms de fichiers sans  tenir  compte ​ de  la
 +              casse.
 +       ​completion-prefix-display-length (0)
 +              La  longueur, en caractères,​ du préfixe commun d'une liste de complètements possibles affiché sans modification. Si confi‐
 +              gurée en valeur positive, les préfixes communs plus longs que cette valeur sont remplacés par une ellipse lors de  l'​affi‐
 +              chage des complètements possibles.
 +       ​completion-query-items (100)
 +              Cela  détermine ​ quand l'​utilisateur est interrogé pour voir le nombre de complètements possibles produits par la commande
 +              possible-completions. Elle peut être configurée à toute valeur entière positive. Si le nombre de  complètements ​ possibles
 +              est supérieur ou égal à la valeur de cette variable, il est demandé à l'​utilisateur s'il veut ou non les voir ; sinon, ils
 +              sont simplement affichés sur le terminal.
 +       ​convert-meta (On)
 +              Si configurée à On, readline transformera les caractères avec leur huitième bit à 1 en suite de caractères ASCII  en  sup‐
 +              primant ​ le  huitième ​ bit  et en insérant comme préfixe un caractère de protection (en fait, en utilisant le caractère de
 +              protection comme préfixe méta).
 +       ​disable-completion (Off)
 +              Si configurée à On, readline empêchera le complètement des mots. Les caractères de  complètement ​ seront ​ insérés ​ sur  la
 +              ligne comme s'ils avaient été associés à self-insert.
 +       ​editing-mode (emacs)
 +              Commande ​ si  readline ​ doit démarrer avec des raccourcis clavier similaires à Emacs ou à vi. editing-mode peut être posi‐
 +              tionné soit à emacs, soit à vi.
 +       ​echo-control-characters (On)
 +              Si configurée à On, sur les systèmes d'​exploitation le permettant, readline affiche un caractère correspondant à un signal
 +              provenant du clavier.
 +       ​enable-keypad (Off)
 +              Quand  configurée à On, readline essayera d'​activer le pavé numérique de l'​application une fois appelée. Sur certains sys‐
 +              tèmes, c'est nécessaire pour utiliser les flèches.
 +       ​enable-meta-key (On)
 +              Quand configurée à On, readline essayera d'​activer toutes les touches de modificateur Méta que le terminal peut prendre en
 +              charge une fois appelé. Sur de nombreux terminaux, la touche Méta est utilisée pour saisir des caractères sur huit bits.
 +       ​expand-tilde (Off)
 +              Si configurée à On, le développement du tilde est effectué lorsque readline tente un complètement de commandes.
 +       ​history-preserve-point (Off)
 +              Si  configurée ​ à  On,  le programme d'​historique tente de placer le curseur au même endroit sur chaque ligne d'​historique
 +              récupérée avec previous-history ou next-history.
 +       ​history-size (0)
 +              Configure le nombre d'​éléments sauvegardés dans la file de l'​historique. Si configurée à  zéro, ​ tous  les  éléments ​ sont
 +              effacés et aucun nouvel élément n’est sauvegardé. Si configurée à une valeur strictement négative, le nombre d'​éléments de
 +              la file d’historique n'est pas limité. Par défaut, le nombre d’éléments n’est pas limité.
 +       ​horizontal-scroll-mode (Off)
 +              Quand configurée à On, readline utilisera une seule ligne d'​affichage et fera défiler la saisie ​ horizontalement ​ sur  une
 +              seule ligne d'​écran quand elle devient plus longue que la largeur de l'​écran,​ plutôt que de faire un retour à la ligne.
 +       ​input-meta (Off)
 +              Si  configurée ​ à  On,  readline acceptera des saisies sur huit bits (autrement dit il ne supprimera pas le huitième bit),
 +              quel que soit le terminal utilisé. Le nom meta-flag est un synonyme pour cette variable.
 +       ​isearch-terminators (« C-[C-J »)
 +              La chaîne de caractères qui doit terminer une recherche incrémentale sans que le caractère ne soit exécuté comme une  com‐
 +              mande. Si cette variable n'a pas reçu de valeur, les caractères ESC et C-J termineront une recherche incrémentale.
 +       ​keymap (emacs)
 +              Configure ​ le jeu de raccourcis readline actuel. L'​ensemble des noms corrects de jeux de raccourcis est emacs, emacs-stan‐
 +              dard, emacs-meta, emacs-ctlx, vi, vi-command et vi-insert. vi  est  équivalent ​ à  vi-command ;  emacs  est  équivalent ​ à
 +              emacs-standard. La valeur par défaut est emacs ; la valeur de editing-mode modifie aussi le jeu de raccourcis par défaut.
 +       ​keyseq-timeout (500)
 +              Indique ​ le  temps  que readline attendra un caractère lors de la lecture d’une suite de touches ambiguë (c’est-à-dire qui
 +              peut former une suite de touches complète en utilisant l’entrée lue jusqu’à présent, ou accepter une entrée supplémentaire
 +              pour compléter une suite de touches plus longue). Si aucune entrée n’est reçue pendant le temps d’attente,​ readline utili‐
 +              sera la suite la plus courte, mais complète. La valeur est indiquée en milliseconde,​ donc une valeur de 1000 signifie ​ que
 +              readline ​ attendra pendant une seconde une entrée supplémentaire. Si cette variable est configurée à une valeur inférieure
 +              ou égale à zéro, ou à une valeur non numérique, readline attendra la saisie d’une autre touche pour décider de la suite de
 +              touches à compléter.
 +       ​mark-directories (On)
 +              Si configurée à On, une barre oblique est ajoutée aux noms de répertoires.
 +       ​mark-modified-lines (Off)
 +              Si configurée à On, les lignes d'​historique qui ont été modifiées seront précédées à l'​affichage d'un astérisque (*).
 +       ​mark-symlinked-directories (Off)
 +              Si configurée à On, une barre oblique est ajoutée aux noms complétés si ce sont des liens symboliques vers des répertoires
 +              (selon la valeur de mark-directories).
 +       ​match-hidden-files (On)
 +              Cette variable, quand elle est configurée à On, conduit readline à faire correspondre des fichiers dont  le  nom  commence
 +              par  un « . » (fichiers cachés) lors du complètement de noms de fichiers. Si configurée à Off, le « . » du début doit être
 +              fourni par l'​utilisateur dans le nom de fichier à compléter.
 +       ​menu-complete-display-prefix (Off)
 +              Si configurée à On, le complètement de menu affiche le préfixe commun à la liste de complétements possibles (qui peut être
 +              vide) avant de tourner dans la liste.
 +       ​output-meta (Off)
 +              Si  configurée ​ à On, readline affichera directement les caractères ayant leur huitième bit à 1, plutôt que d'​utiliser une
 +              suite de caractères de protection avec préfixe méta.
 +       ​page-completions (On)
 +              Si configurée à On, readline utilise un afficheur de texte interne du type more pour afficher les complètements ​ possibles
 +              sur un seul plein écran.
 +       ​print-completions-horizontally (Off)
 +              Si  configurée ​ à  On, readline affichera les complètements correspondants triés horizontalement dans l'​ordre alphabétique
 +              plutôt que verticalement.
 +       ​revert-all-at-newline (Off)
 +              Si configurée à On, readline ​ annulera ​ toutes ​ les  modifications ​ des  lignes ​ d'​historique ​ avant  de  s'​arrêter ​ quand
 +              accept-line ​ est  exécuté. Par défaut les lignes d'​historique peuvent être modifiées et conservent les listes d'​annulation
 +              individuelles au fur et à mesure des appels à readline.
 +       ​show-all-if-ambiguous (Off)
 +              Cela modifie le comportement par défaut des fonctions de complètement. Si configurée à On, les mots qui ont plus d'un com‐
 +              plètement possibles conduisent à l'​affichage immédiat des correspondances plutôt qu'à l'​émission d'une alarme.
 +       ​show-all-if-unmodified (Off)
 +              Cela  modifie ​ le  comportement ​ par  défaut ​ des fonctions de complètement de façon similaire à show-all-if-ambiguous. Si
 +              configurée à On, les mots qui ont plus d'un complètement possible sans aucun complètement partiel possible (les  complète‐
 +              ments  possibles ​ ne  partagent ​ pas  de préfixe commun) conduisent à l'​affichage immédiat des correspondances plutôt qu'à
 +              l'​émission d'une alarme.
 +       ​show-mode-in-prompt (Off)
 +              Si configurée à On, ajoute un caractère au début de l’invite indiquant le mode d’édition : Emacs (@), commande Vi  (:)  ou
 +              insertion Vi (+).
 +       ​skip-completed-text (Off)
 +              Si  configurée ​ à  On,  modifie le comportement par défaut du complètement lors de l'​insertion d'une unique correspondance
 +              dans la ligne. Elle n'est utilisée que lors d'un complètement effectué au milieu d'un mot. Si elle est  activée, ​ readline
 +              n'​insère ​ pas  de  caractères ​ de complètement correspondant à des caractères situés après le curseur dans le mot en train
 +              d'​être complété, ainsi les parties du mots situées après le curseur ne sont pas dupliquées.
 +       ​visible-stats (Off)
 +              Si configurée à On, un caractère indiquant le type de fichier, comme signalé par stat(2) est ajouté aux noms  de  fichiers
 +              en affichant les complètements possibles.
 +
 +   ​Constructions conditionnelles de readline
 +       ​Readline implémente un mécanisme inspiré des fonctionnalités de compilation conditionnelle du préprocesseur C qui permet d'​effec‐
 +       tuer le paramétrage des raccourcis clavier et des variables selon les résultats de tests. Il y a quatre directives d'​analyse uti‐
 +       ​lisées.
 +
 +       ​$if ​   La  structure $if permet de choisir les raccourcis selon le mode d'​édition,​ le terminal utilisé ou l'​application utilisant
 +              readline. Le texte du test va jusqu'​à la fin de la ligne ; aucun caractère n'est nécessaire pour le délimiter.
 +
 +              mode   La forme mode= de la directive $if est utilisée pour vérifier si readline est en mode emacs ou vi. Cela  peut  être
 +                     ​utilisé ​ conjointement à la commande set keymap, par exemple pour ne configurer les raccourcis des jeux de raccour‐
 +                     cis emacs-standard et emacs-ctlx que si readline démarre en mode emacs.
 +
 +              term   La forme term= peut être utilisée pour ajouter des raccourcis clavier spécifiques au terminal, comme  associer ​ des
 +                     ​suites ​ de  touches ​ produites par des touches de fonction du terminal. Le mot à droite du signe = est comparé à la
 +                     fois au nom complet du terminal et à la portion de nom du terminal qui précède le premier signe -. Cela permet, par
 +                     ​exemple,​ de faire correspondre sun avec à la fois sun et sun-cmd.
 +
 +              application
 +                     ​La ​ structure ​ application est utilisée pour inclure des paramétrages spécifiques à chaque application. Chaque pro‐
 +                     ​gramme utilisant la bibliothèque readline configure un nom d'​application et un fichier d'​initialisation peut tester
 +                     ​une ​ valeur ​ particulière. ​ Ce peut être utilisé pour associer des suites de touches à des fonctions utiles pour un
 +                     ​certain programme. Par exemple, les commandes suivantes ajoutent une suite de touches qui protège le mot actuel ​ ou
 +                     ​précédant dans bash :
 +
 +                     $if Bash
 +                     # Protéger le mot actuel ou le précédant
 +                     "​\C-xq":​ "​\eb\"​\ef\""​
 +                     ​$endif
 +
 +       ​$endif Cette commande, comme on l'a vu dans l'​exemple ci-dessus, termine une commande $if.
 +
 +       ​$else ​ Permet d'​ajouter des commandes qui seront exécutées si un $if échoue.
 +
 +       ​$include
 +              Cette  directive ​ prend  un  seul  nom de fichier comme argument et y lit les commandes et les raccourcis. Par exemple, la
 +              directive suivante lirait le fichier /​etc/​inputrc :
 +
 +              $include ​ /​etc/​inputrc
 +
 +   ​Recherche
 +       ​Readline fournit des commandes de recherche au sein de l'​historique de commandes (consultez ​ HISTORIQUE ​ ci-dessous) ​ des  lignes
 +       ​contenant une chaîne donnée. Il y a deux modes de recherche : incrémental et non incrémental.
 +
 +       ​Les ​ recherches ​ incrémentales ​ commencent ​ avant  même  que l'​utilisateur n'ait terminé de saisir la chaîne recherchée. À chaque
 +       ​caractère saisi, readline affiche l'​élément suivant de l'​historique qui correspond à la chaîne déjà entrée. Une recherche ​ incré‐
 +       ​mentale nécessite seulement le nombre de caractères indispensable pour retrouver l'​élément d'​historique désiré. Les caractères se
 +       ​trouvant dans la variable isearch-terminators servent à terminer une recherche incrémentale. Si aucune valeur n'a été affectée ​ à
 +       ​cette ​ variable, ​ les  caractères ​ Échappement (« Escape ») et Contrôle-J terminent une recherche incrémentale. Contrôle-G permet
 +       ​d'​interrompre une recherche incrémentale et de restaurer la ligne originale. Lorsque la recherche est finie, ​ l'​élément ​ d'​histo‐
 +       rique contenant la chaîne désirée devient la ligne actuelle.
 +
 +       ​Pour ​ trouver les autres éléments correspondant dans la file d'​historique,​ saisissez selon Contrôle-S ou Contrôle-R. Cela recher‐
 +       chera en avant ou en arrière dans l'​historique l'​élément suivant correspondant à la chaîne saisie jusque-là. Toute autre suite de
 +       ​touches ​ associée ​ à une commande readline interrompra la recherche et exécutera la commande. Par exemple, un changement de ligne
 +       ​interrompra la recherche et acceptera la ligne, exécutant ainsi la commande de la file d'​historique.
 +
 +       ​Readline se souvient de la dernière chaîne de recherche incrémentale. Si deux Contrôle-R sont tapés sans caractère ​ pour  définir
 +       une nouvelle recherche de chaîne, toute chaîne mémorisée sera utilisée.
 +
 +       ​Les ​ recherches ​ non  incrémentales ​ lisent ​ la chaîne désirée en entier avant de démarrer la recherche de correspondance dans la
 +       liste d'​historique. La chaîne peut être saisie par l'​utilisateur ou faire partie du contenu de la ligne actuelle.
 +
 +   Noms des commandes readline
 +       Ce qui suit est une liste des noms de commandes et les suites de touches auxquelles elles sont associées par défaut. Les noms  de
 +       ​commandes ​ sans  suite  de  touche les accompagnant ne sont pas associées par défaut. Dans les descriptions suivantes, le curseur
 +       (« point ») se rapporte à la position actuelle du curseur et la marque se rapporte à une position de curseur sauvegardée ​ par  la
 +       ​commande set-mark. Le texte entre le curseur et la marque est désigné comme la zone.
 +
 +   ​Commandes de déplacement
 +       ​beginning-of-line (C-a)
 +              Reculer au début de la ligne actuelle.
 +       ​end-of-line (C-e)
 +              Avancer à la fin de la ligne.
 +       ​forward-char (C-f)
 +              Avancer d'un caractère.
 +       ​backward-char (C-b)
 +              Reculer d'un caractère.
 +       ​forward-word (M-f)
 +              Avancer jusqu'​à la fin du mot suivant. Les mots sont composés de caractères alphanumériques (lettres et chiffres).
 +       ​backward-word (M-b)
 +              Reculer ​ jusqu'​au ​ début ​ du  mot actuel ou du précédent. Les mots sont composés de caractères alphanumériques (lettres et
 +              chiffres).
 +       ​shell-forward-word
 +              Avancer jusqu'​à la fin du mot suivant. Les mots sont séparés par des métacaractères non protégés de l'​interpréteur.
 +       ​shell-backward-word
 +              Reculer jusqu'​au début du mot actuel ou du précédent. Les mots  sont  séparés ​ par  des  métacaractères ​ non  protégés ​ de
 +              l'​interpréteur.
 +       ​clear-screen (C-l)
 +              Effacer ​ l'​écran, ​ en  laissant la ligne actuelle au sommet de l'​écran. S'il y a un argument, rafraîchir la ligne actuelle
 +              sans effacer l'​écran.
 +       ​redraw-current-line
 +              Rafraîchir la ligne actuelle.
 +
 +   ​Commandes de manipulation de l'​historique
 +       ​accept-line (changement de ligne, retour chariot)
 +              Valider la ligne, sans se soucier de l'​emplacement du curseur. Si la ligne n'est pas vide, l'​ajouter à  la  file  d'​histo‐
 +              rique, ​ sous contrôle de la variable HISTCONTROL. Si cette ligne est une ligne d'​historique modifiée, restaurer cette der‐
 +              nière.
 +       ​previous-history (C-p)
 +              Récupérer la commande précédente de la file d'​historique,​ en remontant dans la file.
 +       ​next-history (C-n)
 +              Récupérer la commande suivante dans la file d'​historique,​ en descendant dans la file.
 +       ​beginning-of-history (M-<)
 +              Récupérer la première ligne de l'​historique.
 +       ​end-of-history (M->)
 +              Retourner à la fin de l'​historique de saisie, c'​est-à-dire à la ligne en cours de saisie.
 +       ​reverse-search-history (C-r)
 +              Rechercher en arrière dans l'​historique,​ en remontant. C'est une recherche incrémentale.
 +       ​forward-search-history (C-s)
 +              Rechercher en avant dans l'​historique,​ en descendant. C'est une recherche incrémentale.
 +       ​non-incremental-reverse-search-history (M-p)
 +              Rechercher une chaîne en arrière dans l'​historique,​ en remontant depuis la ligne  actuelle, ​ utiliser ​ une  recherche ​ non
 +              incrémentale pour une chaîne fournie par l'​utilisateur.
 +       ​non-incremental-forward-search-history (M-n)
 +              Rechercher ​ une  chaîne ​ en  avant  dans l'​historique,​ utiliser une recherche non incrémentale pour une chaîne fournie par
 +              l'​utilisateur.
 +       ​history-search-forward
 +              Rechercher en avant dans l'​historique la chaîne comprise entre le début de la ligne actuelle et la  position ​ du  curseur.
 +              C'est une recherche non incrémentale.
 +       ​history-search-backward
 +              Rechercher ​ en arrière dans l'​historique la chaîne comprise entre le début de la ligne actuelle et la position du curseur.
 +              C'est une recherche non incrémentale.
 +       ​yank-nth-arg (M-C-y)
 +              Insérer, à l'​emplacement du curseur, le premier argument de la commande précédente. Généralement,​ il s'agit du second ​ mot
 +              de  la  ligne  précédente. ​ Avec un argument n, insérer le n-ième mot de la commande précédente (les mots sont numérotés à
 +              partir de 0). Un argument négatif insère le n-ième mot en partant de la fin  de  la  commande ​ précédente. ​ Une  fois  que
 +              l'​argument n est traité, l'​argument est extrait comme si le développement d'​historique « !n » avait été indiqué.
 +       ​yank-last-arg (M-., M-_)
 +              Insérer ​ le  dernier ​ argument ​ de la commande précédente (le dernier mot de l'​élément précédent de la file d'​historique).
 +              Avec un argument numérique, se comporte exactement comme yank-nth-arg. Les appels ​ successifs ​ à  yank-last-arg ​ remontent
 +              dans  la  file d'​historique en insérant le dernier mot (ou le mot indiqué par l'​argument du premier appel) de chaque ligne
 +              tour à tour. Tous les arguments numériques fournis à ces appels successifs déterminent la direction ​ de  déplacement ​ dans
 +              l'​historique. ​ Un argument négatif modifie la direction dans l'​historique (en avant ou en arrière). Les outils de dévelop‐
 +              pement d'​historique sont utilisés pour extraire le dernier mot, comme si le développement d'​historique ​ « !$ »  avait  été
 +              indiqué.
 +       ​shell-expand-line (M-C-e)
 +              Développer, ​ comme  le  fait  l'​interpréteur,​ la ligne actuelle. Cela effectue le développement des alias et d'​historique,​
 +              ainsi que tous les développements de mot de l'​interpréteur. Consultez ci-dessous DÉVELOPPEMENT DE L'​HISTORIQUE, ​ pour  une
 +              description détaillée du développement de l'​historique.
 +       ​history-expand-line (M-^)
 +              Effectuer ​ le  développement ​ d'​historique sur la ligne actuelle. Consultez ci-dessous DÉVELOPPEMENT DE L'​HISTORIQUE,​ pour
 +              une description détaillée.
 +       ​magic-space
 +              Effectuer le développement de l'​historique sur la ligne actuelle et insérer une espace. Consultez ci-dessous DÉVELOPPEMENT
 +              DE L'​HISTORIQUE,​ pour une description détaillée.
 +       ​alias-expand-line
 +              Effectuer ​ le développement des alias sur la ligne actuelle. Consultez ALIAS ci-dessus pour une description des développe‐
 +              ments d'​alias.
 +       ​history-and-alias-expand-line
 +              Effectuer le développement de l'​historique et des alias sur la ligne actuelle.
 +       ​insert-last-argument (M-., M-_)
 +              Un synonyme de yank-last-arg.
 +       ​operate-and-get-next (C-o)
 +              Valider la ligne actuelle et récupérer la ligne suivante de l'​historique pour édition. Tout argument est ignoré.
 +       ​edit-and-execute-command (C-xC-e)
 +              Appeler un éditeur sur la ligne de commande actuelle et exécuter le résultat comme une commande d'​interpréteur. Bash tente
 +              d'​appeler,​ dans cet ordre, $VISUAL, $EDITOR et emacs comme éditeur.
 +
 +   ​Commande d'​édition de texte
 +       ​end-of-file (généralement C-d)
 +              Le  caractère ​ indiquant ​ la  fin de ligne, comme défini, par exemple, par « stty ». Si ce caractère est lu alors qu’aucun
 +              caractère n’est sur la ligne, et que le curseur est au début de la ligne, readline l’interprète comme le fin  de  l’entrée
 +              et renvoie EOF.
 +       ​delete-char (C-d)
 +              Effacer ​ le  caractère sous le curseur. Si cette fonction est associée au même caractère que le caractère EOF du terminal,
 +              comme c’est souvent le cas avec C-d, consultez les effets dans le paragraphe précédent.
 +       ​backward-delete-char (Effacement ou « Rubout »)
 +              Effacer le caractère avant le curseur. Lorsque un argument numérique est indiqué, le texte effacé est sauvegardé ​ dans  le
 +              tampon circulaire.
 +       ​forward-backward-delete-char
 +              Effacer le caractère sous le curseur, sauf s'il est en fin de ligne, auquel cas le caractère avant le curseur est effacé.
 +       ​quoted-insert (C-q, C-v)
 +              Ajouter ​ littéralement ​ sur  la  ligne  le  caractère ​ saisi  suivant. Cela permet d'​insérer des caractères comme C-q, par
 +              exemple.
 +       ​tab-insert (C-v TAB)
 +              Insérer un caractère de tabulation.
 +       ​self-insert (a, b, A, 1, !, ...)
 +              Insérer le caractère mentionné.
 +       ​transpose-chars (C-t)
 +              Échanger les caractères se trouvant devant et sous le curseur. Le curseur est avancé d'un caractère. À la fin d'une ligne,
 +              les caractères échangés sont les deux précédents. Les arguments négatifs n'ont aucun effet.
 +       ​transpose-words (M-t)
 +              Déplace ​ le mot avant le curseur au-delà du mot après le curseur et déplace aussi le curseur sur ce mot. Si le curseur est
 +              à la fin de la ligne, cela échange les deux derniers mots de la ligne.
 +       ​upcase-word (M-u)
 +              Transformer le mot actuel (ou le suivant) en majuscules. Avec un argument négatif, agir sur le mot précédent mais  ne  pas
 +              déplacer le curseur.
 +       ​downcase-word (M-l)
 +              Transformer ​ le  mot actuel (ou le suivant) en minuscules. Avec un argument négatif, agir sur le mot précédent mais ne pas
 +              déplacer le curseur.
 +       ​capitalize-word (M-c)
 +              Passer en majuscule l'​initiale du mot actuel (ou du suivant). Avec un argument négatif, agir sur le mot précédent mais  ne
 +              pas déplacer le curseur.
 +       ​overwrite-mode
 +              Basculer ​ en  mode  d'​écrasement. ​ Avec un argument numérique explicite strictement positif, bascule en mode d'​écrasement.
 +              Avec un argument numérique explicite négatif ou nul, bascule en mode d'​insertion. Cette commande ​ n'​affecte ​ que  le  mode
 +              emacs ;  le  mode  vi écrase de façon différente. Chaque appel à readline() démarre en mode d'​insertion. En mode d'​écrase‐
 +              ment, les caractères associés à self-insert remplacent le texte sous le curseur plutôt que de déplacer le  texte  vers  la
 +              droite. ​ Les  caractères ​ associés ​ à  backward-delete-char ​ remplacent ​ le caractère avant le curseur par une espace. Par
 +              défaut, cette commande n'est pas associée.
 +
 +   ​Effacement et récupération
 +       ​kill-line (C-k)
 +              Effacer le texte depuis la position du curseur jusqu'​à la fin de la ligne.
 +       ​backward-kill-line (C-x Effacement)
 +              Effacer en arrière jusqu'​au début de ligne.
 +       ​unix-line-discard (C-u)
 +              Effacer le texte entre le début de la ligne et la position du curseur. Le texte est sauvegardé dans le tampon circulaire.
 +       ​kill-whole-line
 +              Effacer toute la ligne sans tenir compte de la position du curseur.
 +       ​kill-word (M-d)
 +              Effacer le texte entre le curseur et la fin du mot actuel ou, si entre des mots,  jusqu'​à ​ la  fin  du  mot  suivant. ​ Les
 +              limites des mots sont identiques à celles utilisées par forward-word.
 +       ​backward-kill-word (M-Effacement)
 +              Effacer le mot sous le curseur. Les limites de mots sont identiques à celles utilisées par backward-word.
 +       ​shell-kill-word (M-d)
 +              Effacer ​ le  texte  entre  le  curseur ​ et  la fin du mot actuel ou, si entre des mots, jusqu'​à la fin du mot suivant. Les
 +              limites des mots sont identiques à celles utilisées par shell-forward-word.
 +       ​shell-backward-kill-word (M-Effacement)
 +              Effacer le mot sous le curseur. Les limites de mots sont identiques à celles utilisées par shell-backward-word.
 +       ​unix-word-rubout (C-w)
 +              Effacer le mot sous le curseur, en utilisant une espace blanche comme limite de mot. Le texte effacé est  sauvegardé ​ dans
 +              le tampon circulaire.
 +       ​unix-filename-rubout
 +              Effacer ​ le mot sous le curseur, en utilisant l'​espace blanche et la barre oblique comme limites de mot. Le texte supprimé
 +              est sauvegardé dans le tampon circulaire.
 +       ​delete-horizontal-space (M-\)
 +              Effacer toutes les espaces blanches et les tabulations autour du curseur.
 +       ​kill-region
 +              Effacer le texte de la zone actuelle.
 +       ​copy-region-as-kill
 +              Copier le texte de la zone vers le tampon circulaire.
 +       ​copy-backward-word
 +              Copier le mot précédant le curseur dans le tampon circulaire. Les limites de  mots  sont  identiques ​ à  celles ​ de  back‐
 +              ward-word.
 +       ​copy-forward-word
 +              Copier le mot suivant le curseur dans le tampon circulaire. Les limites de mots sont identiques à celles de forward-word.
 +       yank (C-y)
 +              Récupérer le texte au sommet du tampon circulaire à la position du curseur dans le tampon.
 +       ​yank-pop (M-y)
 +              Exécuter ​ une  rotation du tampon circulaire et récupérer le texte situé à son nouveau sommet. Cela ne fonctionne qu'​après
 +              yank ou yank-pop.
 +
 +   ​Arguments numériques
 +       ​digit-argument (M-0, M-1, ..., M--)
 +              Ajouter ce chiffre à l'​argument en cours de rédaction ou créer un nouvel argument. M-- crée un argument négatif.
 +       ​universal-argument
 +              Il s'agit d'une autre façon d'​indiquer un argument. Si cette commande est suivie d'un ou plusieurs ​ chiffres ​ facultative‐
 +              ment  précédés ​ d'un signe moins, ces chiffres définissent l'​argument. Si la commande est suivie de chiffres, une nouvelle
 +              exécution de universal-argument termine l'​argument numérique, mais est ignorée dans les  autres ​ cas.  Par  exception, ​ si
 +              cette  commande ​ est  suivie immédiatement par un caractère qui n'est ni un chiffre ni le signe moins, le compteur d'​argu‐
 +              ments de la commande suivante est multiplié par 4. Le compteur d'​arguments est initialement à un, donc la première ​ exécu‐
 +              tion  de  cette commande amène le compteur d'​arguments à quatre, une seconde fois porte le compteur d'​arguments à seize et
 +              ainsi de suite.
 +
 +   ​Complètement
 +       ​complete (TAB)
 +              Essayer d'​effectuer un complètement du texte situé avant le curseur. Bash effectue le complètement en considérant ​ tour  à
 +              tour  le  texte  comme  une  variable (s'il commence par $), un nom d'​utilisateur (s'il commence par ~), un nom de machine
 +              (s'il commence par @) ou une commande (y compris les alias et les fonctions). Si aucun ne correspond, un  complètement ​ de
 +              nom de fichier est essayé.
 +       ​possible-completions (M-?)
 +              Afficher les complètements possibles pour le texte situé avant le curseur.
 +       ​insert-completions (M-*)
 +              Insérer avant le curseur l'​ensemble des complètements qui auraient été produits par possible-completions.
 +       ​menu-complete
 +              Analogue à complete, mais en remplaçant le mot à compléter par une seule correspondance de la liste des complètements pos‐
 +              sibles. Des exécutions répétées de menu-complete parcourent la liste des complètements possibles, en insérant chaque ​ cor‐
 +              respondance ​ tour  à  tour.  À  la  fin  de  la  liste  des complètements,​ une alarme est émise (selon la configuration de
 +              bell-style) et le texte original est restauré. Un argument de n déplace de n positions dans la liste des  correspondances.
 +              Un argument négatif peut être utilisé pour revenir en arrière dans la liste. Cette commande est destinée à être associée à
 +              la touche TAB, mais ne l'est pas par défaut.
 +       ​menu-complete-backward
 +              Identique à menu-complete,​ mais se déplace en arrière dans la liste des complètements ​ possibles, ​ comme  si  un  argument
 +              négatif avait été passé à menu-complete. Cette commande n'est associée à aucune touche par défaut.
 +       ​delete-char-or-list
 +              Effacer ​ le  caractère ​ sous le curseur sauf au début ou en fin de ligne (comme delete-char). En fin de ligne, se comporte
 +              comme possible-completions. Cette commande n'est associée à aucune touche par défaut.
 +       ​complete-filename (M-/)
 +              Essayer le complètement des noms de fichiers sur le texte situé avant le curseur.
 +       ​possible-filename-completions (C-x /)
 +              Afficher les complètements possibles du texte situé avant le curseur, traité comme un nom de fichier.
 +       ​complete-username (M-~)
 +              Essayer le complètement sur le texte situé avant le curseur, en le traitant comme un nom d'​utilisateur.
 +       ​possible-username-completions (C-x ~)
 +              Afficher les complètements possibles du texte situé avant le curseur, en le traitant comme un nom d'​utilisateur.
 +       ​complete-variable (M-$)
 +              Essayer le complètement sur le texte situé avant le curseur, en le traitant comme une variable de l'​interpréteur.
 +       ​possible-variable-completions (C-x $)
 +              Afficher les complètements possibles du texte situé avant le curseur, en le traitant comme une variable de l'​interpréteur.
 +       ​complete-hostname (M-@)
 +              Essayer le complètement sur le texte situé avant le curseur, en le traitant comme un nom de machine.
 +       ​possible-hostname-completions (C-x @)
 +              Afficher les complètements possibles du texte situé avant le curseur, en le traitant comme un nom de machine.
 +       ​complete-command (M-!)
 +              Essayer le complètement sur le texte situé avant le curseur, en le traitant comme un nom de commande. Le complètement ​ des
 +              commandes ​ essaie ​ de  faire correspondre le texte, dans cet ordre, aux alias, mots réservés, fonctions de l'​interpréteur,​
 +              commandes internes de l'​interpréteur et finalement les noms de fichiers exécutables.
 +       ​possible-command-completions (C-x !)
 +              Afficher les complètements possibles du texte situé avant le curseur, en le traitant comme un nom de commande.
 +       ​dynamic-complete-history (M-TAB)
 +              Essayer le complètement du texte situé avant le curseur, en le comparant aux lignes de la file d'​historique lui correspon‐
 +              dant pour les complètements possibles.
 +       ​dabbrev-expand
 +              Essayer ​ le  menu  de complètement du texte situé avant le curseur, en le comparant aux lignes de la file d'​historique lui
 +              correspondant pour les complètements possibles.
 +       ​complete-into-braces (M-{)
 +              Effectuer un complètement en noms de fichiers et insérer la liste des complètements possibles entre accolades afin que  la
 +              liste soit exploitable par l'​interpréteur (consultez Développement des accolades ci-dessus).
 +
 +   ​Macros clavier
 +       ​start-kbd-macro (C-x ()
 +              Démarrer la mémorisation dans la macro en cours des caractères tapés.
 +       ​end-kbd-macro (C-x ))
 +              Arrêter la mémorisation dans la macro en cours des caractères saisis et conserver la définition.
 +       ​call-last-kbd-macro (C-x e)
 +              Réexécuter la dernière macro définie, en agissant comme si les caractères contenus dans cette macro étaient saisis au cla‐
 +              vier.
 +       ​print-last-kbd-macro ()
 +              Afficher la dernière macro de clavier définie, mise en forme de façon à être incorporée dans un fichier inputrc.
 +
 +   ​Divers
 +       ​re-read-init-file (C-x C-r)
 +              Lire le contenu du fichier inputrc et prendre en compte tous raccourcis ou affectations de variables qui s'y trouvent.
 +       abort (C-g)
 +              Abandonner l'​édition en cours et émettre une alarme de terminal (selon la configuration de la variable bell-style).
 +       ​do-uppercase-version (M-a, M-b, M-x, ...)
 +              Si le caractère x précédé de Méta est en minuscule, exécuter la commande qui est associée aux caractères ​ majuscules ​ cor‐
 +              respondants.
 +       ​prefix-meta (ESC)
 +              Considérer le prochain caractère saisi comme un Méta. ESC f est équivalent à Meta-f.
 +       undo (C-_, C-x C-u)
 +              Fonction d'​annulation incrémentale,​ chaque ligne étant mémorisée séparément.
 +       ​revert-line (M-r)
 +              Annuler ​ toutes ​ les  modifications ​ sur cette ligne. C’est équivalent à répéter undo suffisamment de fois pour ramener la
 +              ligne à son état initial.
 +       ​tilde-expand (M-&)
 +              Effectuer le développement du tilde sur le mot actuel.
 +       ​set-mark (C-@, M-<​space>​)
 +              Placer la marque à la position actuelle du curseur. Si un argument numérique est fourni, la marque est posée à la position
 +              correspondante.
 +       ​exchange-point-and-mark (C-x C-x)
 +              Échanger le curseur et la marque. La position actuelle du curseur est configurée à la position sauvegardée précédemment et
 +              l'​ancienne position du curseur est mémorisée comme la marque.
 +       ​character-search (C-])
 +              Un caractère est lu et le curseur déplacé à l'​occurrence suivante de ce  caractère. ​ Un  argument ​ négatif ​ recherche ​ les
 +              occurrences précédentes.
 +       ​character-search-backward (M-C-])
 +              Un  caractère ​ est  lu  et le curseur déplacé à l'​occurrence précédente de ce caractère. Un argument négatif recherche les
 +              occurrences suivantes.
 +       ​skip-csi-sequence
 +              Lire suffisamment de caractères pour englober une suite multitouche comme celles définies pour des touches comme Début ​ et
 +              Fin. De telles suites commencent par un indicateur de suite de contrôle (« control sequence indicator » ou CSI), habituel‐
 +              lement ESC-[. Si cette suite est associée à "​\[",​ les touches qui produisent de telles suites n'​auront pas d'​effet à moins
 +              d'​être ​ explicitement ​ associées à une commande readline, au lieu d'​insérer des caractères parasites dans le tampon d'​édi‐
 +              tion. N'est associée à aucune touche par défaut, mais est souvent associée à ESC-[.
 +       ​insert-comment (M-#)
 +              Sans argument numérique, la valeur de la variable comment-begin de readline est insérée au début de la ligne actuelle. ​ Si
 +              un  argument ​ numérique est fourni, cette commande agit comme une bascule : si les caractères du début de ligne ne corres‐
 +              pondent pas à la valeur de comment-begin,​ la valeur est insérée, sinon, les caractères de comment-begin ​ sont  effacés ​ du
 +              début de la ligne. Dans les deux cas, la ligne est acceptée comme si un changement de ligne avait été saisi. La valeur par
 +              défaut de comment-begin conduit cette commande à transformer la ligne actuelle de l'​interpréteur ​ en  commentaire. ​ Si  un
 +              argument numérique conduit à l'​effacement du caractère de commentaire,​ la ligne sera exécutée par l'​interpréteur.
 +       ​glob-complete-word (M-g)
 +              Le  mot  avant  le  curseur ​ est  traité ​ comme un motif pour un développement de chemin, avec un astérisque implicitement
 +              ajouté. Ce motif est utilisé pour produire une liste de noms de fichiers correspondants pour de possibles complètements.
 +       ​glob-expand-word (C-x *)
 +              Le mot précédant le curseur est considéré comme un motif de développement de chemin et la liste  des  fichiers ​ correspon‐
 +              dants est insérée à sa place. Si un argument numérique est fourni, un astérisque est ajouté avant le développement du che‐
 +              min.
 +       ​glob-list-expansions (C-x g)
 +              La liste des développements qui auraient été produits par glob-expand-word est affichée et la ligne est rafraîchie. Si  un
 +              argument numérique est fourni, un astérisque est ajouté devant le développement du chemin.
 +       ​dump-functions
 +              Afficher ​ toutes les fonctions et leurs raccourcis clavier sur le flux de sortie de readline. Si un argument numérique est
 +              fourni, la sortie est mise en forme de façon à être incorporée dans un fichier inputrc.
 +       ​dump-variables
 +              Afficher toutes les variables readline modifiables et leurs valeurs sur le flux de sortie ​ de  readline. ​ Si  un  argument
 +              numérique est fourni, la sortie est mise en forme de façon à être incorporée dans un fichier inputrc.
 +       ​dump-macros
 +              Afficher toutes les suites de touches readline associées à des macros et les chaînes auxquelles elles correspondent. Si un
 +              argument numérique est fourni, la sortie est mise en forme de façon à être incorporée dans un fichier inputrc.
 +       ​display-shell-version (C-x C-v)
 +              Afficher des informations sur la version actuelle de bash.
 +
 +   ​Complètement programmable
 +       ​Lorsqu'​un complètement de mot est tenté pour un argument d'une commande pour laquelle une spécification ​ de  complètement ​ a  été
 +       ​définie en utilisant la commande interne complete (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous),​ les outils de com‐
 +       ​plètement programmables sont appelés.
 +
 +       En premier lieu, le nom de la commande est identifié. Si le mot de commande est vide  (complètement ​ essayé ​ en  début ​ de  ligne
 +       ​vide), ​ toutes ​ les  spécifications ​ de complètement définies par l'​option -E de complete sont utilisées. Si une spécification de
 +       ​complètement a été définie pour cette commande, elle est utilisée pour produire la liste des complètements possibles pour le mot.
 +       ​Si ​ le mot de commande est un chemin d'​accès complet, on cherche en premier lieu une spécification de complètement pour le chemin
 +       ​d'​accès complet. Si aucune spécification de complètement n'est trouvée pour le chemin d'​accès complet, une tentative ​ est  effec‐
 +       ​tuée ​ pour  trouver ​ une  spécification de complètement pour la partie située après la barre oblique finale. Si ces recherches ne
 +       ​donnent aucun résultat sous forme de spécification de complètement, ​ toutes ​ les  spécifications ​ de  complètement ​ définies ​ par
 +       ​l'​option -D de complete sont utilisées par défaut.
 +
 +       Une fois qu'une spécification de complètement a été trouvée, elle est utilisée pour produire la liste des mots correspondants. Si
 +       ​aucune spécification de complètement n'est trouvée, le complètement par défaut de bash, tel que décrit ci-dessus ​ dans  Complète‐
 +       ment est effectué.
 +
 +       ​Tout ​ d'​abord,​ les actions définies par la spécification de complètement sont utilisées. Seules les correspondances préfixées par
 +       le mot à compléter sont renvoyées. Lorsque l'​option -f ou -d est utilisée pour le complètement des noms de fichiers ou de  réper‐
 +       ​toire,​ la variable de l'​interpréteur FIGNORE est utilisée pour filtrer les correspondances.
 +
 +       Tous les complètements indiqués par le motif de développement de chemin de l'​option -G sont ensuite produits. Il n'est pas néces‐
 +       saire que les mots produits par le motif correspondent au mot à compléter. La variable de  l'​interpréteur ​ GLOBIGNORE ​ n'​est ​ pas
 +       ​utilisée pour filtrer les correspondances,​ mais la variable FIGNORE est utilisée.
 +
 +       ​Ensuite,​ la chaîne indiquée comme argument à l'​option -W est prise en compte. Cette chaîne est tout d'​abord découpée en utilisant
 +       les caractères de la variable spéciale IFS comme délimiteurs. Les protections de l'​interpréteur sont prises en compte. Chaque mot
 +       est ensuite développé en utilisant les développements d'​accolades,​ du tilde, des paramètres et des variables, de même que la sub‐
 +       ​stitution de commande et le développement arithmétique comme décrit ci-dessus dans DÉVELOPPEMENTS. Les résultats sont découpés en
 +       ​utilisant ​ les  règles décrites ci-dessus dans Découpage en mots. Les résultats du développement sont comparés au mot à compléter
 +       en considérant ce dernier comme préfixe et les mots correspondants deviennent les complètements possibles.
 +
 +       ​Après la création de ces correspondances,​ toute fonction de l'​interpréteur ou commande indiquée avec les options ​ -F  et  -C  est
 +       ​appelée. Lorsque la commande ou la fonction est appelée, les variables COMP_LINE , COMP_POINT , COMP_LINKEY , et COMP_POINTYPE se
 +       ​voient affectées de valeurs comme décrit ci-dessus dans Variables de l'​interpréteur. Si une fonction de l'​interpréteur est  appe‐
 +       ​lée, ​ les  variables ​ COMP_WORDS et COMP_CWORD sont également créées. Lorsqu'​une fonction ou une commande est appelée, le premier
 +       ​argument ($1) est le nom de la commande dont les arguments doivent être complétés,​ le deuxième argument ($2) est le mot à complé‐
 +       ​ter ​ et  le troisième argument ($3) est le mot précédant celui devant être complété sur la ligne de commande actuelle. Aucun fil‐
 +       trage des complètements produits pour le mot à compléter n'est effectué ; la fonction ou la commande a toute liberté dans la pro‐
 +       ​duction des correspondances.
 +
 +       ​Toute ​ fonction indiquée avec -F est appelée en premier. La fonction peut utiliser tous les outils de l'​interpréteur,​ incluant la
 +       ​commande interne compgen décrite ci-dessous, pour produire les correspondances. Elle doit mettre les complètements possibles dans
 +       la variable tableau COMPREPLY, une par élément de tableau.
 +
 +       ​Ensuite, ​ toute  commande ​ indiquée ​ avec l'​option -C est appelée dans un environnement équivalent à la substitution de commande.
 +       Elle devrait afficher une liste des complètements ​ possibles, ​ une  par  ligne, ​ sur  la  sortie ​ standard. ​ Si  nécessaire, ​ une
 +       ​contre-oblique peut être utilisée pour protéger un caractère de changement de ligne.
 +
 +       ​Après ​ la création de tous les complètements possibles, tout filtre, indiqué avec l'​option -X, est appliqué à la liste. Ce filtre
 +       est un motif comme dans le développement des chemins ; un & dans le motif est remplacé par le texte du mot en cours de  complète‐
 +       ment. Un & littéral peut être protégé par une contre-oblique ; la contre-oblique est supprimée avant la tentative de mise en cor‐
 +       ​respondance. Tout complètement qui correspond au motif sera supprimé de la liste. Un ! au début du motif provoque la négation ​ de
 +       ce motif ; dans ce cas, tout complètement ne correspondant pas au motif sera supprimé de la liste.
 +
 +       ​Finalement, ​ tous préfixe et suffixe indiqués avec les options -P et -S sont ajoutés à chacun des éléments de la liste de complè‐
 +       ​tement et le résultat est renvoyé au programme de complètement de readline comme étant la liste des complètements possibles.
 +
 +       Si les opérations précédemment appliquées ne produisent aucune correspondance et si l'​option -o dirnames a été fournie à complete
 +       ​lorsque la spécification de complètement a été définie, le complètement des noms de répertoire est tenté.
 +
 +       ​Si ​ l'​option ​ -o plusdirs a été fournie à complete lors de la définition de la spécification de complètement,​ le complètement des
 +       noms de répertoires est tenté et toute correspondance est ajoutée aux résultats des autres actions.
 +
 +       Par défaut, si une spécification de complètement est trouvée, tout ce qu'​elle produit est renvoyé au  programme ​ de  complètement
 +       ​comme ​ un  jeu complet des complètements possibles. Les complètements par défaut de bash ne sont pas tentés et le complètement de
 +       ​fichiers par défaut de readline est désactivé. Si l'​option -o bashdefault a été fournie à complete lors de la  définition ​ de  la
 +       ​spécification ​ de  complètement, ​ les complètements par défaut de bash sont tentés si la spécification de complètement ne produit
 +       ​aucune correspondance. Si l'​option -o default a été fournie à complete lors de la définition de la spécification de complètement,​
 +       ​le ​ complètement ​ par  défaut de readline sera effectué si la spécification de complètement (et, si tentés, les complètements par
 +       ​défaut de bash) ne produit aucune correspondance.
 +
 +       ​Lorsqu'​une spécification de complètement indique qu'un complètement de nom de répertoire est souhaité, les fonctions de complète‐
 +       ​ment ​ programmable ​ forcent ​ readline à ajouter une barre oblique pour compléter les noms qui sont des liens symboliques vers des
 +       ​répertoires,​ selon la valeur de la variable mark-directories de readline, indépendamment du paramétrage de la variable ​ mark-sym‐
 +       ​linked-directories de readline.
 +
 +       La modification dynamique des complètements est également possible. C'est particulièrement utile combiné avec un complètement par
 +       ​défaut indiqué à l'aide de complete -D. Les fonctions de l'​interpréteur exécutés comme gestionnaires de  complètement ​ permettent
 +       ​d'​annoncer que le complètement devrait être réessayé en renvoyant un état final de 124. Si une fonction de l'​interpréteur renvoie
 +       124, et modifie la spécification de complètement associée à la commande sur laquelle le complètement est  essayé ​ (fournie ​ comme
 +       ​premier argument quand la fonction est exécutée),​ le complètement programmable recommence depuis le début, en essayant de trouver
 +       une nouvelle spécification de complètement pour cette commande. Un jeu de complètements peut ainsi être  construit ​ dynamiquement
 +       ​lorsque le complètement est essayé, plutôt que d'​être chargé entièrement au début.
 +
 +       ​Par ​ exemple, ​ en  supposant ​ l'​existence d'une bibliothèque de spécifications de complètement,​ chacune conservée dans un fichier
 +       ​correspondant au nom de la commande, la fonction de complètement par défaut suivante chargerait les complètements de façon ​ dyna‐
 +       mique :
 +
 +       ​_completion_loader()
 +       {
 +            . "/​etc/​bash_completion.d/​$1.sh"​ >/​dev/​null 2>&1 && return 124
 +       }
 +       ​complete -D -F _completion_loader -o bashdefault -o default
 +
 +
 +HISTORIQUE
 +       ​Quand ​ l'​option ​ -o  history ​ de  la  commande interne set est activée, l'​interpréteur donne accès à un historique des commandes,
 +       ​c'​est-à-dire la liste des commandes précédemment utilisées. La valeur de la variable HISTSIZE est utilisée comme nombre ​ de  com‐
 +       ​mandes ​ à  sauvegarder ​ dans  la  file  d'​historique. ​ Le texte des HISTSIZE dernières commandes (par défaut 500) est sauvegardé.
 +       ​L'​interpréteur conserve chaque commande dans la file d'​historique avant le développement des paramètres et des variables (consul‐
 +       ​tez ​ DÉVELOPPEMENTS ​ ci-dessus) ​ mais  après ​ avoir effectué le développement de l'​historique,​ selon les valeurs des variables de
 +       ​l'​interpréteur HISTIGNORE et HISTCONTROL.
 +
 +       Au démarrage, l'​historique est initialisé avec le fichier dont  le  nom  est  contenu ​ dans  la  variable ​ HISTFILE ​ (par  défaut
 +       ​~/​.bash_history). Le fichier désigné par la valeur de HISTFILE est tronqué si nécessaire,​ pour ne pas contenir plus de lignes que
 +       le nombre précisé par HISTFILESIZE. Si HISTFILESIZE est détruite, ou définie à NULL, une valeur non numérique ou une valeur numé‐
 +       ​rique ​ strictement inférieure à zéro, le fichier d’historique n’est pas tronqué. Quand le fichier d'​historique est lu, les lignes
 +       ​commençant par le caractère de commentaire d'​historique suivi immédiatement par un chiffre sont considérées comme des horodatages
 +       ​de ​ la ligne d'​historique précédente. Ces horodatages sont facultativement affichés en fonction de la valeur de la variable HIST‐
 +       ​TIMEFORMAT termine, les HISTSIZE dernières lignes de la file d'​historique sont copiées dans  le  fichier ​ HISTFILE. ​ Si  l'​option
 +       ​d'​interpréteur ​ histappend ​ est activée (consultez la description de shopt dans COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous),​
 +       les lignes sont ajoutées au fichier d'​historique,​ sinon le fichier est écrasé. Si HISTFILE ​ est  inexistante ​ ou  si  le  fichier
 +       ​d'​historique ​ n'​est ​ pas accessible en écriture, l'​historique n'est pas sauvegardé. Si la variable HISTTIMEFORMAT est configurée,​
 +       les horodatages sont écrits dans le fichier d'​historique,​ repérés par le  caractère ​ de  commentaire ​ d'​historique, ​ afin  d'​être
 +       ​conservés au fur et à mesure des sessions de l'​interpréteur. Le caractère de commentaire d'​historique est utilisé pour distinguer
 +       ​l'​horodatage des autres lignes de l'​historique. Après la sauvegarde de l'​historique,​ le fichier d'​historique est tronqué pour  ne
 +       pas contenir plus de HISTFILESIZE lignes. Si HISTFILESIZE est détruite, ou définie à NULL, une valeur non numérique ou une valeur
 +       ​numérique strictement inférieure à zéro, le fichier d’historique n’est pas tronqué.
 +
 +       La commande interne fc (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous) permet d'​afficher,​ d'​éditer ou  de  réexécuter
 +       une partie de la file d'​historique. La commande interne history permet d'​afficher la file d'​historique et de manipuler le fichier
 +       ​d'​historique. Quelque soit le mode d'​édition en ligne de commande, des commandes de recherche donnent accès à  la  file  d'​histo‐
 +       ​rique.
 +
 +       ​L'​interpréteur permet de configurer quelles commandes seront sauvegardées dans la file d'​historique. Les variables HISTCONTROL et
 +       ​HISTIGNORE peuvent être configurées pour conduire l'​interpréteur à ne sauvegarder ​ qu'​un ​ sous-ensemble ​ des  commandes ​ saisies.
 +       ​L'​option ​ d'​interpréteur ​ cmdhist, si activée, conduit l'​interpréteur à essayer de sauvegarder chaque ligne d'une commande multi‐
 +       ligne dans le même élément de l'​historique,​ en ajoutant des points-virgules si nécessaire pour préserver l'​exactitude de la  syn‐
 +       taxe. L'​option d'​interpréteur lithist conduit l'​interpréteur à sauvegarder les commandes avec des changements de ligne incorporés
 +       ​plutôt que des points-virgules. Consultez ci-dessous la description de la commande ​ interne ​ shopt  dans  COMMANDES ​ INTERNES ​ DE
 +       ​L'​INTERPRÉTEUR pour des détails sur la création et la destruction des options d'​interpréteur.
 +
 +DÉVELOPPEMENT DE L'​HISTORIQUE
 +       ​L'​interpréteur ​ propose ​ des  possibilités ​ de  développement ​ de l'​historique qui sont semblables à celles de csh. Ce paragraphe
 +       ​décrit quelles syntaxes sont disponibles. Cette fonctionnalité est activée par défaut dans les interpréteurs interactifs et  peut
 +       ​être ​ désactivée en utilisant l'​option +H de la commande interne set (consultez COMMANDES INTERNES DE L'​INTERPRÉTEUR ci-dessous).
 +       Les interpréteurs non interactifs n'​effectuent pas de développement d'​historique par défaut.
 +
 +       Le développement de l'​historique permet d'​insérer des mots de la file d'​historique dans le flux de saisie, facilitant la  répéti‐
 +       ​tion ​ de  commandes, ​ l'​insertion ​ des arguments d'une ligne antérieure dans la saisie en cours ou la correction rapide d'​erreurs
 +       dans les commandes précédentes.
 +
 +       Le développement de l'​historique est effectué immédiatement après la lecture d'une ligne complète, avant que l'​interpréteur ne la
 +       ​décompose ​ en  mots. Il se déroule en deux parties. La première consiste à déterminer la ligne de la file d'​historique à utiliser
 +       pour les substitutions,​ la seconde permet de sélectionner les parties de la ligne à inclure dans  la  nouvelle ​ ligne. ​ La  ligne
 +       ​sélectionnée ​ dans l'​historique est l'​événement et les parties de cette ligne à réutiliser sont des mots. Plusieurs modificateurs
 +       ​permettent de manipuler les mots sélectionnés. La ligne est découpée en mots de la même façon que lors de la lecture ​ d'​une ​ sai‐
 +       ​sie, ​ ainsi  plusieurs mots séparés par des métacaractères et encadrés par des guillemets simples sont considérés comme un unique
 +       mot. Le développement de l'​historique est introduit par l'​apparition du caractère de développement,​ qui est ! par  défaut. ​ Seule
 +       la contre-oblique (\) et les guillemets simples permettent de protéger le caractère de développement de l'​historique.
 +
 +       ​Plusieurs ​ caractères empêchent le développement de l'​historique s'ils se trouvent immédiatement après le caractère de développe‐
 +       ment de l'​historique,​ même s'il n'est pas protégé : espace, tabulation, changement de ligne, retour chariot ​ et  =.  Si  l'​option
 +       ​d'​interpréteur extglob est activée, ( empêchera aussi le développement.
 +
 +       ​Plusieurs ​ options d'​interpréteur,​ configurables avec la commande interne shopt, permettent d'​ajuster le comportement du dévelop‐
 +       ​pement de l'​historique. Si l'​option d'​interpréteur histverify est activée (consultez la description de la commande interne ​ shopt
 +       ​ci-dessous) ​ et  si  readline ​ est utilisée, les substitutions d'​historique ne sont pas transmises tout de suite à l'​analyseur de
 +       ​l'​interpréteur. À la place, la ligne développée est rechargée dans le tampon d'​édition de readline pour permettre ​ des  modifica‐
 +       ​tions ​ ultérieures. ​ Si readline est utilisée et si l'​option histreedit est activée, une substitution d'​historique qui échoue est
 +       ​rechargée dans la mémoire tampon de readline pour correction. L'​option -p de la commande interne history peut servir ​ à  examiner
 +       ​ce ​ qu'​une ​ substitution ​ donnera avant de l'​employer réellement. L'​option -s de la commande interne history permet d'​ajouter des
 +       ​commandes à la fin de la file d'​historique sans les avoir effectivement exécutées,​ afin qu'​elles soient disponibles pour des rap‐
 +       pels ultérieurs.
 +
 +       ​L'​interpréteur ​ offre  le contrôle des divers caractères utilisés par le mécanisme de développement de l'​historique (consultez la
 +       ​description de histchars ci-dessus dans Variables de l'​interpréteur). L'​interpréteur utilise le caractère de commentaire d'​histo‐
 +       rique pour repérer l'​horodatage lors de l'​écriture du fichier d'​historique.
 +
 +   ​Indicateur d'​événement
 +       ​Un ​ indicateur ​ d'​événement ​ est  une  référence à un élément ligne de commande dans la file d'​historique. Sauf s'il s'agit d'une
 +       ​référence absolue, les événements sont relatifs à la position actuelle dans la file d'​historique.
 +
 +       ​! ​     Débute une substitution d'​historique,​ sauf s'il est suivi par un blanc, changement ​ de  ligne, ​ retour ​ chariot, ​ =  ou  (
 +              (lorsque l'​option d'​interpréteur extglob est activée en utilisant la commande interne shopt).
 +       ​!n ​    Se rapporte à la ligne de commande n.
 +       ​!-n ​   Se rapporte à la commande actuelle moins n.
 +       ​!! ​    Se rapporte à la commande précédente. C'est un synonyme de « !-1 ».
 +       ​!chaîne
 +              Se rapporte à la commande la plus récente précédant la position actuelle dans la liste d'​historique commençant par chaîne.
 +       ​!?​chaîne[?​]
 +              Se rapporte à la commande la plus récente précédant la position actuelle dans la liste d'​historique contenant chaîne. Le ?
 +              final peut être omis si chaîne est immédiatement suivie d'un changement de ligne.
 +       ​^chaîne_1^chaîne_2^
 +              Substitution ​ rapide. ​ Répéter ​ la   ​commande ​  ​précédente ​  ​en ​  ​remplaçant ​  ​chaîne_1 ​  ​par ​  ​chaîne_2. ​  ​Équivalent ​  à
 +              « !!:​s/​chaîne_1/​chaîne_2/​ » (consultez Modificateurs ci-dessous).
 +       ​!# ​    La ligne entière tapée jusqu'​à présent.
 +
 +   ​Indicateurs de mots
 +       ​Ces ​ indicateurs servent à sélectionner les mots désirés dans un événement. Un : sépare l'​indicateur d'​événements de l'​indicateur
 +       de mot. On peut l'​omettre si l'​indicateur de mot commence par ^, $, *, - ou %. Les mots sont numérotés ​ depuis ​ le  début ​ de  la
 +       ​ligne,​ le premier étant noté 0 (zéro). Les mots sont insérés dans la ligne actuelle, séparés par des espaces.
 +
 +       0 (zéro)
 +              Le zéro-ième mot. Pour l'​interpréteur,​ c'est le nom de la commande.
 +       ​n ​     Le n-ième mot.
 +       ​^ ​     Le premier argument, c'​est-à-dire le mot 1.
 +       ​$ ​     Le dernier mot. C’est généralement le dernier argument, mais qui sera développé en zéro-ième mot s’il n’y a qu’un seul mot
 +              sur la ligne.
 +       ​% ​     Le mot correspondant à la recherche « ?chaîne? » la plus récente.
 +       ​x-y ​   Un intervalle de mots, « -y » permet d'​abréger « 0-y ».
 +       ​* ​     Tous les mots sauf le zéro-ième. C'est un synonyme pour « 1-$ ». Il n'est pas erroné d'​utiliser * s'​il ​ n'​y ​ a  qu'​un ​ mot
 +              dans l'​événement ; la chaîne vide est renvoyée dans ce cas.
 +       ​x* ​    ​Abréviation de x-$.
 +       ​x- ​    ​Abréviation de x-$ comme x*, mais sans le dernier mot.
 +
 +       Si un indicateur de mot est fourni sans indication d'​événement,​ la dernière commande est utilisée.
 +
 +   ​Modificateurs
 +       ​Après un indicateur de mot facultatif, une suite d'un ou plusieurs des modificateurs suivants peut apparaître,​ chacun précédé par
 +       un « : ».
 +
 +       ​h ​     Éliminer la fin du chemin d'​accès,​ en ne gardant que le début.
 +       ​t ​     Supprimer tout le début d'un chemin d'​accès,​ en ne gardant que la fin.
 +       ​r ​     Supprimer un suffixe final de la forme .xxx, en ne gardant que le nom de base.
 +       ​e ​     Supprimer tout sauf le suffixe final.
 +       ​p ​     Afficher la nouvelle commande sans l'​exécuter.
 +       ​q ​     Protéger les mots substitués,​ pour éviter des substitutions futures.
 +       ​x ​     Protéger les mots substitués comme avec q, mais avec séparation des mots aux blancs et changements de ligne.
 +       ​s/​ancien/​nouveau/​
 +              Remplacer par nouveau la première occurrence de ancien sur la ligne d'​événement. Tout délimiteur peut être  utilisé ​ à  la
 +              place de /. Le dernier délimiteur est facultatif si c'est le dernier caractère de la ligne d'​événement. Le délimiteur peut
 +              être protégé dans ancien et nouveau avec une seule contre-oblique. Si & apparaît dans nouveau, il est remplacé par ancien.
 +              Une  seule  contre-oblique ​ protégera ​ le &. Si ancien est NULL, il est configuré au dernier ancien substitué ou si aucune
 +              substitution n'a eu lieu précédemment,​ à la dernière chaîne dans une recherche !?​chaîne[?​].
 +       & ​     Répéter la substitution précédente.
 +       ​g ​     Appliquer les modifications ​ sur  toute  la  ligne  d'​événements. ​ C'​est ​ utilisé ​ conjointement ​ à  « :s »  (par  exemple
 +              « :​gs/​ancien/​nouveau/​ »)  ou  « :& ». Si utilisé avec « :s », tout délimiteur peut être utilisé à la place de / et le der‐
 +              nier délimiteur est facultatif si c'est le dernier caractère de la ligne d'​événements. Un a peut être utilisé en tant  que
 +              synonyme de g.
 +       ​G ​     Appliquer le modificateur « s » suivant une fois à tous les mots de la ligne d'​événements.
 +
 +COMMANDES INTERNES DE L'​INTERPRÉTEUR
 +       Sauf indication contraire, chaque commande interne décrite dans ce paragraphe comme acceptant des options précédées par - accepte
 +       ​également la notation -- pour signaler la fin des options. Les commandes internes :,  true,  false  et  test  n'​acceptent ​ aucune
 +       ​option ​ et  -- est ignoré. Les commandes internes exit, logout, break, continue, let et shift acceptent et traitent les arguments
 +       ​commençant par - sans avoir besoin de --. Les autres commandes internes qui acceptent les arguments mais qui ne sont pas déclarés
 +       ​explicitement ​ comme  acceptant des options considèrent les arguments commençant par - comme des options non valides, donc -- est
 +       ​obligatoire pour éviter cette interprétation.
 +       : [arguments]
 +              Sans effet ; cette commande ne fait rien d'​autre que développer les arguments et effectuer toute redirection indiquée. ​ Un
 +              code final de zéro est renvoyé.
 +
 +        .  fichier [arguments]
 +       ​source fichier [arguments]
 +              Lire  et exécuter les commandes du fichier dans l'​environnement de l'​interpréteur actuel, puis renvoyer l'​état final de la
 +              dernière commande exécutée dans fichier. Si le nom du fichier ne contient pas de barre oblique, les chemins d'​accès conte‐
 +              nus  dans  PATH  sont  parcourus ​ pour rechercher le répertoire contenant le fichier. Lorsqu'​il est recherché dans PATH le
 +              fichier n'a pas besoin d'​être exécutable. Lorsque bash n'est pas en mode posix, le répertoire de travail actuel est  fina‐
 +              lement ​ examiné ​ si aucun fichier n'est trouvé dans PATH. Si l'​option sourcepath de la commande interne shopt est désacti‐
 +              vée, le PATH n'est pas parcouru. Si des arguments sont fournis, ils sont transmis dans les paramètres positionnels lorsque
 +              le  fichier ​ est exécuté. Sinon les paramètres positionnels ne sont pas modifiés. L'​état renvoyé est l'​état de la dernière
 +              commande terminée au sein du script (0 si aucune commande n'a été exécutée) et faux si le fichier n'est pas trouvé ​ ou  ne
 +              peut être lu.
 +
 +       alias [-p] [nom[=valeur] ...]
 +              La  commande ​ alias sans argument ou avec l'​option -p affiche sur la sortie standard la liste des alias actuellement défi‐
 +              nis, sous la forme nom=valeur. Lorsque des arguments sont fournis, un alias est créé pour chaque nom auquel on a donné une
 +              valeur. ​ Une  espace ​ finale ​ dans une valeur conduira à la recherche d'​alias dans le mot suivant lors du développement de
 +              l'​alias. Pour tous les noms sans valeur fournie dans la liste d'​arguments,​ le nom et la valeur de l'​alias ​ sont  affichés.
 +              La commande alias renvoie vrai, à moins qu'un nom n'ait été indiqué pour lequel aucun alias n'a été défini.
 +
 +       bg [tâche ...]
 +              Reprendre ​ en  arrière-plan chaque tâche suspendue, comme si elle avait été lancée avec &. Si aucune tâche n'est précisée,
 +              la notion d'​interpréteur de tâche actuelle est utilisée. bg tâche renvoie 0 sauf si le contrôle des tâches est  désactivé,​
 +              ou,  quand  le  contrôle des tâches est activé, si une tâche précisée n'a pas été trouvée ou a été lancée sans contrôle de
 +              tâches.
 +
 +       bind [-m jeu_de_raccourcis] [-lpsvPSVX]
 +       bind [-m jeu_de_raccourcis] [-q fonction] [-u fonction] [-r suite_de_touches]
 +       bind [-m jeu_de_raccourcis] -f fichier
 +       bind [-m jeu_de_raccourcis] -x suite_de_touches:​commande_de_l'​interpréteur
 +       bind [-m jeu_de_raccourcis] suite_de_touches:​nom_de_fonction
 +       bind commande_readline
 +              Afficher les associations de touches readline actuelles et les raccourcis de fonctions, associer une suite  de  touches ​ à
 +              une  fonction ​ ou une macro readline ou créer une variable readline. Chaque argument qui n'est pas une option est une com‐
 +              mande comme elle devrait apparaître dans .inputrc, mais chaque raccourci ou commande doit être fourni ​ comme  un  argument
 +              indépendant ; par exemple « "​\C-x\C-r":​ re-read-init-file ». Les options, si fournies, ont les significations suivantes :
 +              -m jeu_de_raccourcis
 +                     ​Utiliser ​ le jeu_de_raccourcis comme jeu de raccourcis devant être concerné par les raccourcis ultérieurs. Les noms
 +                     de jeux_de_raccourcis possibles sont emacs, emacs-standard,​ emacs-meta, ​ emacs-ctlx, ​ vi,  vi-move, ​ vi-command ​ et
 +                     ​vi-insert. vi est équivalent à vi-command ; emacs est équivalent à emacs-standard.
 +              -l     ​Afficher la liste des noms de toutes les fonctions readline.
 +              -p     ​Afficher les noms des fonctions readline et leurs raccourcis de façon à pouvoir les relire.
 +              -P     ​Afficher les noms des fonctions readline et leurs raccourcis.
 +              -s     ​Afficher les suites de touches readline associées aux macros et les chaînes correspondantes,​ de façon à pouvoir les
 +                     ​relire.
 +              -S     ​Afficher les suites de touches readline associées aux macros et les chaînes correspondantes.
 +              -v     ​Afficher les noms des variables readline et leurs valeurs de façon à pouvoir les relire.
 +              -V     ​Afficher les noms des variables readline et leurs valeurs.
 +              -f fichier
 +                     Lire les raccourcis clavier dans fichier.
 +              -q fonction
 +                     ​Rechercher les touches permettant d'​appeler la fonction indiquée.
 +              -u fonction
 +                     ​Dissocier toutes les touches associées à fonction.
 +              -r suite_de_touches
 +                     ​Supprimer tout raccourci actuel pour la suite_de_touches.
 +              -x suite_de_touches:​commande_de_l'​interpréteur
 +                     ​Conduire la commande_de_l'​interpréteur à être exécutée chaque fois que la suite_de_touches ​ est  saisie. ​ Quand  la
 +                     ​commande_de_l'​interpréteur est exécutée, l'​interpréteur configure la variable READLINE_LINE au contenu du tampon de
 +                     ligne de readline et la variable READLINE_POINT à la position actuelle du curseur d'​insertion. Si la commande ​ exé‐
 +                     ​cutée ​ modifie les valeurs de READLINE_LINE ou READLINE_POINT,​ ces nouvelles valeurs seront prises en considération
 +                     dans l'​état d'​édition.
 +              -X     ​Afficher toutes les suites de touches associées aux commandes de l’interpréteur et  aux  commandes ​ associées ​ pour
 +                     ​pouvoir être réutilisées en entrée.
 +
 +              La valeur renvoyée est 0, à moins qu'une option inconnue ne soit indiquée ou qu'une erreur ne se soit produite.
 +
 +       break [n]
 +              Sortir ​ d'​une ​ boucle for, while, until ou select. Si n est indiqué, sortir de n niveaux de boucles. n doit être ≥ 1. Si n
 +              est supérieur au nombre de boucles imbriquées,​ sortir de toutes les boucles. La valeur renvoyée est 0, à moins  que  n  ne
 +              soit pas supérieur ou égal à 1.
 +
 +       ​builtin commande_interne [arguments]
 +              Exécuter la commande interne de l'​interpréteur indiquée, en lui passant les arguments, puis renvoyer son état final. C'est
 +              utile lorsqu'​une fonction est définie avec le même nom qu'une commande interne, et que cette commande est  appelée ​ depuis
 +              l'​intérieur ​ de  la  fonction. ​ La commande interne cd est souvent redéfinie de cette façon. L'​état renvoyé est faux si la
 +              commande_interne n'est pas une commande interne de l'​interpréteur.
 +
 +       ​caller [expr]
 +              Renvoyer le contexte de tout appel de sous-programme actif (une fonction de l'​interpréteur ou un  script ​ lancé ​ avec  les
 +              commandes ​ internes ​ .  ou  source). ​ Sans  expr, caller affiche le numéro de ligne et le nom de fichier du sous-programme
 +              actuel. Si un entier positif est fourni comme expr, caller affiche le numéro de ligne, le nom du sous-programme et le  nom
 +              de fichier source correspondant à la position dans la pile d'​appels d'​exécution actuelle. Cette information supplémentaire
 +              peut être utilisée, par exemple, pour afficher une trace de la pile. La trame actuelle est la trame 0. La valeur ​ renvoyée
 +              est  0,  à moins que l'​interpréteur ne soit pas en train d'​exécuter un sous-programme ou que expr ne corresponde pas à une
 +              position correcte dans la pile d'​appels.
 +
 +       cd [-L|[-P [-e]] [-@]] [rép]
 +              Remplacer le répertoire de travail actuel par rép. Si rép n’est pas fourni, la valeur de la variable ​ d’interpréteur ​ HOME
 +              est la valeur par défaut. Tous les arguments supplémentaires suivant rép sont ignorés. La variable CDPATH définit des che‐
 +              mins de recherche pour trouver le répertoire contenant rép : tous les noms de répertoire contenus dans CDPATH sont parcou‐
 +              rus  à  la recherche de rép. Les répertoires possibles y sont fournis dans une liste séparés par des deux-points « : ». Un
 +              nom de répertoire NULL dans CDPATH est équivalent au répertoire actuel, c'​est-à-dire « . ». Si rép commence par une  barre
 +              oblique ​ (/),  alors CDPATH n'est pas utilisé. L'​option -P force cd à n'​employer que la structure de répertoires physiques
 +              en résolvant les liens symboliques en traversant rép et avant de traiter les instances de ..  dans  rép  (consultez ​ aussi
 +              l'​option ​ -P  de la commande interne set) ; l'​option -L force à suivre les liens symboliques en résolvant les liens symbo‐
 +              liques après le traitement des instances de .. dans rép. Si .. apparaît dans dir, il est traité en supprimant le composant
 +              de  chemin précédant directement rép, jusqu’à une barre oblique ou le début de rép. Si l'​option -e est fournie avec -P, et
 +              que le répertoire de travail actuel ne peut pas être déterminé avec succès après un changement de répertoire avec  succès,
 +              cd  renverra un état d'​échec. Sur les systèmes qui le permettent, l’option -@ présente les attributs étendus associés à un
 +              fichier comme à un répertoire. Un argument - est converti en $OLDPWD avant d’essayer un changement de  répertoire. ​ Si  un
 +              nom  de  répertoire non vide de CDPATH est utilisé ou si - est le premier argument et si le changement de répertoire réus‐
 +              sit, le chemin absolu du nouveau répertoire de travail est écrit sur la sortie standard. La valeur renvoyée est vrai si le
 +              changement de répertoire a réussi, faux sinon.
 +
 +       ​command [-pVv] commande [arguments ...]
 +              Exécuter ​ la  commande ​ avec  les arguments indiqués, mais en supprimant le processus habituel de recherche des commandes.
 +              Seules les commandes internes et les commandes trouvées dans PATH seront ​ exécutées. ​ Si  l'​option ​ -p  est  indiquée, ​ la
 +              recherche ​ de la commande est effectuée en utilisant une valeur par défaut pour PATH garantissant de trouver tous les uti‐
 +              litaires standards. Si l'​option -V ou -v est fournie, une description de la commande est affichée. L'​option -v  conduit ​ à
 +              n'​afficher qu'un seul mot indiquant la commande ou le nom de fichier utilisé pour appeler la commande. L'​option -V fournit
 +              une description plus prolixe. Si l'​option -V ou -v est fournie, l'​état final est 0 si la  commande ​ a  été  trouvée ​ et  1
 +              sinon. Si aucune option n'est fournie et si une erreur s'est produite ou si la commande ne peut être trouvée, l'​état final
 +              est 127. Sinon, l'​état final de la commande interne est l'​état final de commande.
 +
 +       ​compgen [option] [mot]
 +              Produire les correspondances des complètements possibles pour mot selon les options, qui peuvent être toute option ​ accep‐
 +              tée par la commande interne complete à l'​exception de -p et -r et écrit le résultat sur la sortie standard. Lorsqu'​on uti‐
 +              lise les options -F ou -C, les diverses variables de l'​interpréteur créées par les outils de  complètement ​ programmables,​
 +              lorsque disponibles,​ n'​auront pas de valeurs utilisables.
 +
 +              Les correspondances seront produites de la même façon que si le programme de complètement programmable les avait produites
 +              directement à partir d'une spécification de complètement avec les mêmes attributs. Si mot est indiqué, seuls les complète‐
 +              ments qui correspondent à mot sont affichés.
 +
 +              La valeur renvoyée est vrai, sauf si une option incorrecte a été fournie ou si aucune correspondance n'a été produite.
 +
 +       ​complete [-abcdefgjksuv] [-o option-complètement] [-DE] [-A action] [-G globpat] [-W liste_de_mots] [-F fonction] [-C commande]
 +              [-X motif_filtre] [-P préfixe] [-S suffixe] nom [nom ...]
 +       ​complete -pr [-DE] [nom ...]
 +              Indiquer ​ la façon de compléter les arguments de chaque nom. Si l'​option -p est fournie ou si aucune option n'est fournie,
 +              les spécifications de complètement existantes sont affichées de telle  façon ​ qu'​elles ​ puissent ​ être  réutilisées ​ comme
 +              entrée. L'​option -r retire une spécification de complètement à chaque nom fourni ou, si aucun nom n'est fourni, toutes les
 +              spécifications de complètement. L'​option -D indique que les options restantes et les actions devraient ​ s'​appliquer ​ à  la
 +              commande ​ de complètement par « défaut », c'​est-à-dire le complètement essayé sur une commande pour laquelle aucun complè‐
 +              tement n'a été préalablement défini. L'​option -E indique que les options restantes et les actions devraient s'​appliquer ​ à
 +              la commande de complètement « vide », c'​est-à-dire le complètement essayé sur une ligne vide.
 +
 +              Le  processus ​ d'​application ​ de  ces  spécifications de complètement,​ lorsqu'​un complètement de mot est tenté, est décrit
 +              ci-dessus dans Complètement programmable.
 +
 +              Les autres options, si indiquées, ont les significations suivantes. Les arguments des options -G, -W et -X (et, si  néces‐
 +              saire, ​ les  options ​ -P et -S) devraient être protégées pour éviter leur développement avant que la commande interne com‐
 +              plete ne soit appelée.
 +              -o option-complètement
 +                      L'​option-complètement commande plusieurs aspects du comportement des spécifications de complètement au-delà de  la
 +                      simple production de complètement. option-complètement peut être l'une des suivantes :
 +                      bashdefault
 +                              Effectuer ​ le  reste  des  complètements par défaut de bash si la spécification de complètement ne produit
 +                              aucune correspondance.
 +                      default Utiliser le complètement de nom de fichier par défaut de readline si la spécification de  complètement ​ ne
 +                              produit aucune correspondance.
 +                      dirnames
 +                              Effectuer ​ le complètement de nom de répertoire si la spécification de complètement ne produit aucune cor‐
 +                              respondance.
 +                      filenames
 +                              Indiquer à readline que la spécification de complètement produit des  noms  de  fichiers, ​ ainsi  il  peut
 +                              effectuer ​ tout  traitement ​ spécifique ​ aux noms de fichiers (comme ajouter une barre oblique aux noms de
 +                              répertoires,​ protéger les caractères spéciaux ou supprimer les espaces de fin de ligne). Destinée ​ à  être
 +                              utilisée avec les fonctions de l'​interpréteur.
 +                      noquote Indiquer ​ à readline de protéger les mots complétés s’il s’agit de noms de fichier (la protection des noms
 +                              de fichier est par défaut).
 +                      nospace Indiquer à readline de ne pas ajouter une espace (comportement par défaut) aux mots complétés ​ en  fin  de
 +                              ligne.
 +                      plusdirs
 +                              Après ​ création de toutes les correspondances définies par la spécification de complètement,​ une tentative
 +                              de complètement de nom de répertoire est effectuée et toutes les correspondances sont ajoutées aux  résul‐
 +                              tats des autres actions.
 +              -A action
 +                      L'​action peut être l'une des suivantes pour produire une liste des complètements possibles :
 +                      alias   Noms d'​alias. Peut également être indiquée avec -a.
 +                      arrayvar
 +                              Noms de variable de type tableau.
 +                      binding Noms de raccourci clavier readline.
 +                      builtin Noms de commandes internes de l'​interpréteur. Peut également être indiquée avec -b.
 +                      command Noms de commande. Peut également être indiquée avec -c.
 +                      directory
 +                              Noms de répertoire. Peut également être indiquée avec -d.
 +                      disabled
 +                              Noms de commandes internes de l'​interpréteur désactivées.
 +                      enabled Noms de commandes internes de l'​interpréteur activées.
 +                      export ​ Noms de variables de l'​interpréteur exportées. Peut également être indiquée avec -e.
 +                      file    Noms de fichier. Peut également être indiquée avec -f.
 +                      function
 +                              Noms de fonctions de l'​interpréteur.
 +                      group   Noms de groupe. Peut également être indiquée avec -g.
 +                      helptopic
 +                              Sujets de l'aide acceptés par la commande interne help.
 +                      hostname
 +                              Noms de machine tels qu'ils sont extraits du fichier indiqué par la variable de l'​interpréteur HOSTFILE.
 +                      job     Noms de tâche si le contrôle des tâches est actif. Peut également être indiquée avec -j.
 +                      keyword Mots réservés de l'​interpréteur. Peut également être indiquée avec -k.
 +                      running Noms de tâches en cours d'​exécution si le contrôle des tâches est actif.
 +                      service Noms de service. Peut également être indiquée avec -s.
 +                      setopt ​ Arguments corrects de l'​option -o de la commande interne set.
 +                      shopt   Noms des options d'​interpréteur acceptées par la commande interne shopt.
 +                      signal ​ Noms de signaux.
 +                      stopped Noms de tâches suspendues si le contrôle des tâches est actif.
 +                      user    Noms d'​utilisateur. Peut également être indiquée avec -u.
 +                      variable
 +                              Noms de toutes les variables de l'​interpréteur. Peut également être indiquée avec -v.
 +              -C commande
 +                      La  commande est exécutée dans un environnement de sous-interpréteur et sa sortie est utilisée comme complètements
 +                      possibles.
 +              -F fonction
 +                      La fonction de l'​interpréteur est exécutée dans l'​interpréteur actuel. Lorsqu'​une fonction est exécutée, ​ le  pre‐
 +                      mier  argument ($1) est le nom de la commande dont les arguments doivent être complétés,​ le deuxième argument ($2)
 +                      est le mot à compléter et le troisième argument ($3) est le mot précédant celui devant être complété sur la  ligne
 +                      de  commande ​ actuelle. ​ Lorsqu'​elle finit, les complètements possibles sont récupérés à partir de la valeur de la
 +                      variable de type tableau COMPREPLY.
 +              -G globpat
 +                      Le motif de développement des chemins globpat est développé pour produire les complètements possibles.
 +              -P préfixe
 +                      préfixe est ajouté au début de chaque complètement possible après application de toutes les autres options.
 +              -S suffixe
 +                      suffixe est ajouté à chaque complètement possible après application de toutes les autres options.
 +              -W liste_de_mots
 +                      La liste_de_mots est découpée en utilisant les caractères de la variable spéciale IFS comme délimiteurs et  chaque
 +                      mot  résultant ​ est  développé. ​ Les  complètements possibles sont les éléments de la liste résultante qui corres‐
 +                      pondent au mot en cours de complètement.
 +              -X motif_filtre
 +                      motif_filtre est un motif utilisé pour le développement des chemins. Il est appliqué à la liste des  complètements
 +                      possibles produite par les options et arguments précédents et chaque complètement correspondant à motif_filtre est
 +                      supprimé de la liste. Un ! au début du motif_filtre inverse le motif ; dans ce cas, tout complètement qui ne  cor‐
 +                      respond pas à motif_filtre est supprimé.
 +
 +              La  valeur renvoyée est vrai, sauf si une option incorrecte a été fournie, si une option comme -p ou -r a été fournie sans
 +              un nom d'​argument,​ si une tentative a été faite pour supprimer une spécification de complètement pour un nom  pour  lequel
 +              il n'​existe pas de spécification,​ ou si une erreur est survenue lors de l'​ajout d'une spécification de complètement.
 +
 +       ​compopt [-o option] [-DE] [+o option] [nom]
 +              Modifier les options de complètement pour chaque nom en fonction des options, ou pour le complètement en cours d'​exécution
 +              si aucun nom n'est fourni. Si aucune option n'est donnée, afficher les options de complètement pour chaque nom ou pour  le
 +              complètement ​ actuel. ​ Les  valeurs ​ d’options possibles sont celles décrites ci-dessus pour la commande interne complete.
 +              L'​option -D indique que les options restantes et les actions devraient s'​appliquer ​ à  la  commande ​ de  complètement ​ par
 +              « défaut » ;  c'​est-à-dire ​ le complètement essayé sur une commande pour laquelle aucun complètement n'a été préalablement
 +              défini. L'​option -E indique que les options restantes et les actions devraient s'​appliquer à la commande ​ de  complètement
 +              par « vide » ; c'​est-à-dire le complètement essayé sur une ligne vide.
 +
 +              La  valeur ​ renvoyée est vrai, à moins qu'une option incorrecte ait été fournie, qu'une tentative ait été faite pour modi‐
 +              fier les options pour un nom pour lequel il n'​existe pas de spécification de complètement,​ ou bien qu'une erreur de sortie
 +              soit survenue.
 +
 +       ​continue [n]
 +              Reprendre ​ l'​exécution à l'​itération suivante d'une boucle for, while, until ou encore select. Si n est indiqué, reprendre
 +              l'​exécution à la n-ième boucle imbriquée. n doit être ≥ 1. Si n est supérieur au nombre de boucles imbriquées,​ l'​exécution
 +              reprend ​ à  la boucle la plus externe (la boucle « au sommet »). La valeur renvoyée est 0, à moins que n ne soit supérieur
 +              ou égal à 1.
 +
 +       ​declare [-aAfFgilnrtux] [-p] [nom[=valeur] ...]
 +       ​typeset [-aAfFgilnrtux] [-p] [nom[=valeur] ...]
 +              Déclarer des variables ou leur fournir des attributs. Si aucun nom n'est indiqué, ​ afficher ​ les  valeurs ​ des  variables.
 +              L'​option ​ -p  affichera ​ les  attributs ​ et  les  valeurs de chaque nom. Quand -p est utilisée avec des arguments nom, les
 +              options supplémentaires,​ à part -f et -F, sont ignorées. Quand -p est fourni sans argument nom, les attributs ​ et  valeurs
 +              de  toutes ​ les  variables ​ ayant  des  attributs indiqués par les options additionnelles seront affichés. Si aucune autre
 +              option n'est fournie avec -p, declare affichera les attributs et  valeurs ​ de  toutes ​ les  variables ​ de  l'​interpréteur.
 +              L'​option ​ -f  limite l'​affichage aux fonctions de l'​interpréteur. L'​option -F empêche l'​affichage des définitions de fonc‐
 +              tions : seuls le nom de la fonction et ses attributs sont affichés. Si l'​option d'​interpréteur ​ extdebug ​ est  activée ​ en
 +              utilisant ​ shopt, ​ le nom du fichier source et le numéro de ligne où la fonction est définie sont aussi affichés. L'​option
 +              -F implique -f. L'​option -g force la création ou la modification de variables avec une portée globale, même si declare est
 +              exécutée ​ dans une fonction de l'​interpréteur. Elle est ignorée dans tous les autres cas. Les options suivantes permettent
 +              de restreindre l'​affichage aux variables dotées de certains attributs ou de configurer les attributs des variables :
 +              -a     ​Chaque nom est une variable de type tableau indicé (consultez Tableaux ci-dessus).
 +              -A     ​Chaque nom est une variable de type tableau associatif (consultez Tableaux ci-dessus).
 +              -f     ​Utiliser seulement les noms de fonctions.
 +              -i     La variable est traitée comme un entier ; l'​évaluation arithmétique (consultez ÉVALUATION ​ ARITHMÉTIQUE ​ ci-dessus)
 +                     est effectuée lorsqu'​une valeur est affectée à la variable.
 +              -l     ​Quand ​ cette variable contient une valeur, toutes les majuscules seront converties en minuscules. L'​attribut majus‐
 +                     cule est désactivé.
 +              -n     ​Donner à chaque nom l’attribut nameref, le rendant une référence de  nom  vers  une  autre  variable. ​ Cette  autre
 +                     ​variable ​ est définie par la valeur de nom. Toutes les références et affectations de nom, à part la modification de
 +                     ​l’attribut -n lui-même, sont réalisées sur la variable référencée par la valeur de nom. L’attribut -n ne  peut  pas
 +                     être appliqué aux variables de type tableau.
 +              -r     ​Rendre ​ les  noms  accessibles en lecture seule. Plus aucune valeur ne pourra leur être affectée et ils ne pourront
 +                     plus être détruits.
 +              -t     ​Donner à chaque nom l'​attribut trace. Les fonctions tracées héritent des captures de DEBUG et RETURN de l'​interpré‐
 +                     teur appelant. L'​attribut trace n'a pas de signification spéciale pour les variables.
 +              -u     ​Quand ​ cette variable contient une valeur, toutes les minuscules seront converties en majuscules. L'​attribut minus‐
 +                     cule est désactivé.
 +              -x     ​Marquer les noms pour qu'ils soit exportés dans l'​environnement des commandes ultérieures.
 +
 +              En utilisant « + » à la place de « - », l'​attribut correspondant est désactivé,​ aux exceptions que +a  ne  peut  pas  être
 +              utilisé ​ pour  détruire ​ une  variable ​ tableau et que +r n'​enlèvera pas l'​attribut lecture seule. Quand utilisés dans une
 +              fonction, declare et typeset rendent chaque nom local, comme avec la commande local sauf si l'​option -g est fournie. Si un
 +              nom de variable est suivi par =valeur, la valeur de cette variable est configurée à valeur. Lors de l’utilisation de -a ou
 +              -A et de la syntaxe d’affectation composée pour créer des variables de type tableau, les  attributs ​ supplémentaires ​ sont
 +              sans  effet  jusqu’aux ​ affectations suivantes. La valeur renvoyée est 0, sauf si une option incorrecte est rencontrée,​ si
 +              une tentative est faite de définir une fonction en utilisant « -f truc=bidule »,​ si une tentative est faite d'​affecter une
 +              valeur ​ à  une  variable ​ en  lecture ​ seule, si une tentative est faite d'​affecter une valeur à une variable tableau sans
 +              employer la syntaxe d'​affectation composée (consultez Tableaux ci-dessus), si un des noms n'est pas un  nom  correct ​ pour
 +              une variable de l'​interpréteur,​ si une tentative est faite de supprimer l'​attribut lecture seule d'une variable en lecture
 +              seule, si une tentative est faite de supprimer l'​attribut tableau d'une variable tableau, ou si une  tentative ​ est  faite
 +              avec -f d'​afficher une fonction inexistante.
 +
 +       dirs [-clpv] [+n] [-n]
 +              Sans  option, ​ afficher ​ la liste des répertoires actuellement mémorisés. L'​affichage par défaut est réalisé sur une seule
 +              ligne, les noms de répertoires étant séparés par des espaces. Les répertoires sont ajoutés à la  liste  avec  la  commande
 +              pushd et supprimés avec la commande popd.
 +              -c     ​Effacer la liste des répertoires en les supprimant tous.
 +              -l     ​Produire ​ une  liste  en  utilisant ​ les  chemins complets ; le format d'​affichage par défaut utilise le tilde pour
 +                     ​représenter le répertoire d'​accueil.
 +              -p     ​Afficher la pile des répertoires avec un élément par ligne.
 +              -v     ​Afficher la pile des répertoires avec un élément par ligne, en préfixant chaque entrée ​ avec  son  numéro ​ d'​indice
 +                     dans la pile.
 +              +n     ​Afficher ​ le  n-ième ​ élément ​ de la liste fournie par dirs, lorsqu'​appelé sans options, en comptant à partir de la
 +                     ​gauche en commençant à zéro.
 +              -n     ​Afficher le n-ième élément de la liste fournie par dirs, lorsqu'​appelé sans options, en comptant ​ à  partir ​ de  la
 +                     ​droite en commençant à zéro.
 +
 +              La  valeur renvoyée est 0, sauf si une option incorrecte a été fournie ou si l'​indice n dépasse la longueur de la pile des
 +              répertoires.
 +
 +       ​disown [-ar] [-h] [tâche ...]
 +              Sans options, supprimer chaque tâche de la table des tâches actives. Si aucune ​ tâche ​ n'​est ​ précisée ​ et  qu’aucune ​ des
 +              options ​ -a ou -r n'est fournie, la tâche actuelle est utilisée. Si l'​option -h est indiquée, aucune tâche n'est supprimée
 +              de la table, mais chaque tâche est marquée pour que le signal SIGHUP ne lui soit pas envoyé si  l'​interpréteur ​ reçoit ​ un
 +              signal ​ SIGHUP. ​ Si  aucune tâche n'est fournie, l'​option -a signifie la suppression ou le marquage de toutes les tâches ;
 +              l'​option -r sans l'​argument tâche restreint les opérations aux tâches en cours d'​exécution. La valeur renvoyée est 0, sauf
 +              si tâche n'​indique pas une tâche correcte.
 +
 +       echo [-neE] [arguments ...]
 +              Afficher ​ les  arguments, ​ séparés ​ par  des  espaces, ​ suivis ​ par un saut de ligne. La valeur renvoyée est 0 sauf en cas
 +              d’erreur. Si -n est indiqué, le changement de ligne final est supprimé. Si l'​option -e est indiquée, l'​interprétation ​ des
 +              caractères de protection suivants par une contre-oblique est activée. L'​option -E désactive l'​interprétation de ces carac‐
 +              tères de protection, même sur les systèmes où ils sont interprétés par défaut. L'​option d'​interpréteur xpg_echo peut  être
 +              utilisée dynamiquement pour déterminer si echo développe ou non par défaut ces caractères de protection. echo n'​interprète
 +              pas -- comme signifiant la fin des options. echo reconnaît les suites de caractères de protection suivants :
 +              \a     ​alerte (alarme) ;
 +              \b     ​effacement arrière (« backspace ») ;
 +              \c     ​supprime tout affichage suivant ;
 +              \e
 +              \E     ​caractère de protection ;
 +              \f     saut de page (« form feed ») ;
 +              \n     saut de ligne (« new line ») ;
 +              \r     ​retour chariot (« carriage return ») ;
 +              \t     ​tabulation horizontale ;
 +              \v     ​tabulation verticale ;
 +              \\     ​contre-oblique ;
 +              \0nnn  le caractère 8 bits dont la valeur en octal est nnn (zéro à trois chiffres octaux) ;
 +              \xHH   le caractère 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ;
 +              \uHHHH le caractère Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHH (un à quatre chiffres hexadécimaux) ;
 +              \UHHHHHHHH
 +                     le caractère Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHHHHHH (un à huit chiffres hexadécimaux) ;
 +
 +       ​enable [-a] [-dnps] [-f fichier] [nom ...]
 +              Activer ou désactiver les commandes internes de l'​interpréteur. Désactiver une commande interne permet d'​exécuter une com‐
 +              mande disque ayant le même nom qu'une commande interne de l'​interpréteur,​ sans avoir à indiquer un chemin d'​accès complet,
 +              même quand l'​interpréteur recherche normalement les commandes internes avant les commandes du disque. Si -n  est  utilisé,
 +              chaque ​ nom  indiqué ​ est  désactivé, ​ sinon ils sont activés. Par exemple, pour utiliser le programme binaire test qui se
 +              trouve dans PATH plutôt que la commande interne, utilisez « enable -n test ». L'​option -f demande de charger ​ la  nouvelle
 +              commande ​ interne avec le nom indiqué depuis le fichier objet partagé sur les systèmes qui le permettent. L'​option -d per‐
 +              met de supprimer une commande interne chargée précédemment avec -f. Si aucun argument nom n'est indiqué ou si l'​option ​ -p
 +              est  fournie, ​ une  liste des commandes internes de l'​interpréteur est affichée. Sans autre option, la liste est celle des
 +              commandes internes actives de l'​interpréteur. Si -n est fournie, seules les commandes désactivées sont  affichées. ​ Si  -a
 +              est  fournie, ​ la liste de toutes les commandes est affichée, avec une indication des activations et désactivations. Si -s
 +              est fournie, la sortie est limitée aux commandes internes spéciales POSIX. La valeur renvoyée est 0, sauf si nom n'est pas
 +              une commande interne ou qu'il y a une erreur au chargement d'une nouvelle commande interne d'un objet partagé.
 +
 +       eval [arguments ...]
 +              Les arguments sont lus et regroupés en une seule commande simple. Cette commande est alors lue et exécutée par l'​interpré‐
 +              teur et son état final est renvoyé comme valeur de la commande eval. S'il n'y a pas d'​arguments ou  uniquement ​ des  argu‐
 +              ments NULL, eval renvoie 0.
 +
 +       exec [-cl] [-a nom] [commande [arguments]]
 +              Si  une  commande est indiquée, elle remplace l'​interpréteur. Aucun nouveau processus n'est créé. Les arguments deviennent
 +              ceux de la commande. Si l'​option -l est fournie, l'​interpréteur place un tiret en guise de zéro-ième argument fourni à  la
 +              commande. ​ C'​est ​ ce  que  fait  login(1). L'​option -c conduit à l'​exécution de la commande avec un environnement vide. Si
 +              l'​option -a est fournie, l'​interpréteur transmet le nom comme zéro-ième argument. Si la commande ​ ne  peut  être  exécutée
 +              pour  une raison quelconque, un interpréteur non interactif termine, sauf si l'​option de l'​interpréteur execfail est acti‐
 +              vée. Dans ce cas, une erreur est renvoyée. Un interpréteur interactif renvoie une erreur si le fichier ne  peut  pas  être
 +              exécuté. Si aucune commande n'est indiquée, les éventuelles redirections sont mises en place dans l'​interpréteur actuel et
 +              l'​état renvoyé est 0. S'il y a une erreur de redirection,​ l'​état renvoyé est 1.
 +
 +       exit [n]
 +              Termine l'​interpréteur avec un état de n. Si n est omis, l'​état final est celui de la dernière commande exécutée. Une cap‐
 +              ture sur EXIT est exécutée avant que l'​interpréteur ne se termine.
 +
 +       ​export [-fn] [nom[=mot]] ...
 +       ​export -p
 +              Les  noms  fournis ​ sont  marqués ​ pour  être exportés automatiquement dans l'​environnement des commandes exécutées par la
 +              suite. Si l'​option -f est indiquée, les noms se rapportent à des fonctions. Si aucun nom n'est donné ou si l'​option -p est
 +              fournie, ​ une  liste  de  noms  de toutes les variables exportées est affichée. L'​option -n conduit à supprimer l'​attribut
 +              d'​exportation de toutes les variables nommées. Si un nom de variable est suivi par =mot, la  valeur ​ de  la  variable ​ est
 +              configurée ​ à  mot.  export renvoie un état final de 0, sauf si une option incorrecte est rencontrée,​ si un des noms n'est
 +              pas un nom correct de variable de l'​interpréteur,​ ou si l'​option -f est fournie avec un nom qui n'est pas une fonction.
 +
 +       fc [-e éditeur] [-lnr] [première] [dernière]
 +       fc -s [motif=nouveau] [commande]
 +              La première forme sélectionne un intervalle de commandes de la première ​ à  la  dernière ​ dans  la  file  d’historique ​ et
 +              l’affiche ​ ou  l’édite ​ pour les réexécuter. La première et la dernière peuvent être indiquées sous forme de chaînes (pour
 +              trouver la dernière commande commençant par cette chaîne) ou sous forme numérique (un indice dans la file d'​historique ​ où
 +              un  nombre ​ négatif ​ est  utilisé ​ comme décalage par rapport au numéro de la commande actuelle). Si la dernière n'est pas
 +              indiquée, elle est configurée à la commande actuelle si l'on veut afficher la liste (ainsi « fc -l -10 » ​ affiche ​ les  10
 +              dernières ​ commandes) ​ et  à l'​identique de la première sinon. Si la première n'est pas indiquée, elle est configurée à la
 +              commande précédente pour une édition et à -16 pour l'​affichage de liste.
 +
 +              L'​option -n supprime l'​affichage des numéros dans la liste. L'​option -r inverse l'​ordre des commandes. Si l'​option -l  est
 +              indiquée, ​ les commandes sont affichées sur la sortie standard. Sinon, l'​éditeur indiqué est appelé avec un fichier conte‐
 +              nant les commandes sélectionnées. Si aucun éditeur n'est indiqué, on utilise la valeur de la variable FCEDIT ou la  valeur
 +              de EDITOR si FCEDIT n'​existe pas. Si aucune variable n'​existe,​ vi est utilisé. Lorsque l'​édition se termine, les commandes
 +              sont affichées puis exécutées.
 +
 +              Dans la seconde forme, la commande est réexécutée après avoir remplacé chaque instance du motif par nouveau. commande ​ est
 +              interprétée ​ de la même façon que première ci-dessus. Un alias utile pour cela est « r="​fc -s"​ »,​ ainsi en tapant « r cc »
 +              on relance la dernière commande commençant par « cc » et en tapant « r » on réexécute la commande précédente.
 +
 +              Lorsque la première forme est utilisée, la valeur renvoyée est 0, sauf si une option incorrecte est trouvée ou si première
 +              ou dernière indiquent des lignes d'​historique hors d'​atteinte. Si l'​option -e est fournie, la valeur renvoyée est celle de
 +              la dernière commande exécutée ou un échec si une erreur s'est produite avec le fichier temporaire des commandes. ​ Avec  la
 +              seconde ​ forme, ​ l'​état ​ renvoyé est celui de la commande réexécutée,​ sauf si commande n'​indique pas une ligne correcte de
 +              l'​historique,​ auquel cas fc renvoie un échec.
 +
 +       fg [tâche]
 +              Reprendre la tâche au premier plan qui devient la tâche actuelle. Si aucune tâche n'est précisée, ​ l'​interpréteur ​ utilise
 +              la notion de tâche actuelle. La valeur renvoyée est celle de la commande placée au premier plan ou un échec si le contrôle
 +              des tâches est désactivé ou, lorsque le contrôle des tâches est activé, si la tâche n'​indique pas une tâche correcte ou si
 +              la tâche indique une tâche lancée sans contrôle des tâches.
 +
 +       ​getopts chaîne_d_options nom [arguments]
 +              getopts est utilisé par les scripts d'​interpréteur pour analyser les paramètres positionnels. La chaîne_d_options contient
 +              l'​ensemble des caractères d'​options à reconnaître ; si un caractère est suivi par  un  deux-points, ​ l'​option ​ est  censée
 +              avoir  un  argument, ​ qui devrait en être séparé par une espace. Les caractères deux-points et le point d'​interrogation ne
 +              peuvent pas être utilisés comme caractères d'​option. À chaque appel, getopts place l'​option suivante dans la  variable ​ de
 +              l'​interpréteur ​ dont le nom est fourni, en la créant si elle n'​existe pas et l'​indice de l'​argument suivant à traiter dans
 +              la variable OPTIND. OPTIND est initialisée à 1 à chaque appel d'un interpréteur ou d'un script. Quand une option nécessite
 +              un  argument, ​ getopts ​ place cet argument dans la variable OPTARG. L'​interpréteur ne réinitialise pas OPTIND automatique‐
 +              ment, il faut le faire manuellement entre des appels multiples à getopts au sein du même appel d'​interpréteur si  un  nou‐
 +              veau jeu de paramètres doit être utilisé.
 +
 +              Lorsque ​ la  fin  des options est atteinte, getopts termine avec une valeur renvoyée strictement supérieure à zéro. OPTIND
 +              est positionné à l'​indice du premier argument obligatoire et un point d'​interrogation (?) est placé dans la variable nom.
 +
 +              getopts analyse en principe les paramètres positionnels,​ mais si plus d'​arguments sont  indiqués, ​ getopts ​ analysera ​ ces
 +              derniers à la place.
 +
 +              getopts ​ peut  signaler des erreurs de deux façons. Si le premier caractère de la chaîne_d_options est un deux-points,​ les
 +              erreurs sont signalées de façon silencieuse. Lors d'un fonctionnement normal, des messages de diagnostic sont affichés ​ si
 +              une  option ​ est  incorrecte ​ ou s'il manque un argument d'​option. Si la variable OPTERR est configurée à 0, aucun message
 +              d'​erreur ne sera affiché, même si le premier caractère de la chaîne_d_options n'est pas un deux-points.
 +
 +              Si une option incorrecte est rencontrée,​ getopts place un point d'​interrogation (?) dans la variable nom, affiche un  mes‐
 +              sage d'​erreur (s'il n'est pas en mode silencieux) et détruit la variable OPTARG. Si getopts fonctionne en mode silencieux,
 +              le caractère d'​option est placé dans OPTARG et aucun message de diagnostic n'est affiché.
 +
 +              Lorsqu'​un argument d'​option nécessaire est absent et si getopts n'est pas silencieux, un  point  d'​interrogation ​ (?)  est
 +              placé ​ dans  la  variable ​ nom, OPTARG est détruite et un message de diagnostic est affiché. Si getopts est silencieux, un
 +              deux-points (:) est placé dans la variable nom et OPTARG est positionné à l'​option monocaractère trouvée.
 +
 +              getopts renvoie vrai si une option, indiquée ou non, est trouvée. Il renvoie faux si la fin des options est atteinte ou si
 +              une erreur se produit.
 +
 +       hash [-lr] [-p fichier] [-dt] [nom]
 +              Chaque fois que hash est invoquée, le chemin d'​accès complet de la commande nom est déterminé en examinant les répertoires
 +              de $PATH, et mémorisé. Tous les chemins précédemment ​ mémorisés ​ sont  supprimés. ​ Si  l'​option ​ -p  est  fournie, ​ aucune
 +              recherche ​ de  chemin ​ d'​accès ​ n'​est ​ effectuée ​ et le fichier est utilisé comme chemin d'​accès complet pour la commande.
 +              L'​option -r conduit l'​interpréteur à oublier tous les emplacements mémorisés. L'​option -d conduit l'​interpréteur à oublier
 +              tous les emplacements mémorisés de chaque nom. Si l'​option -t est fournie, le chemin d'​accès complet de chaque nom corres‐
 +              pondant est affiché. Si plusieurs arguments nom sont fournis avec -t, le nom est affiché avant chaque chemin d'​accès ​ com‐
 +              plet  associé. ​ L'​option ​ -l  conduit ​ à afficher la sortie dans un format réutilisable en entrée. Si aucun argument n'est
 +              indiqué ou si seulement -l est fournie, des informations sur les commandes mémorisées sont affichées. La  valeur ​ renvoyée
 +              est vrai, sauf si nom n'est pas trouvé ou si une option incorrecte est fournie.
 +
 +       help [-dms] [motif]
 +              Afficher ​ des  informations ​ d'​aide ​ au  sujet des commandes internes. Si un motif est indiqué, help fournit de l'aide sur
 +              toutes les commandes internes correspondant à ce motif, sinon, une liste des  commandes ​ internes ​ et  des  structures ​ de
 +              contrôle de l'​interpréteur est affichée.
 +              -d     ​Afficher une courte description de chaque motif.
 +              -m     ​Afficher la description de chaque motif dans un format du type pages de manuel.
 +              -s     ​Afficher seulement un court synopsis d'​utilisation de chaque motif.
 +
 +              L'​état renvoyé est 0, sauf si aucune commande ne correspond au motif.
 +
 +       ​history [n]
 +       ​history -c
 +       ​history -d nombre
 +       ​history -anrw [fichier]
 +       ​history -p argument [argument ...]
 +       ​history -s argument [argument ...]
 +              Sans options, afficher la liste des commandes de la file d'​historique,​ avec les numéros de ligne. Les lignes marquées avec
 +              un * ont été modifiées. Un argument n permet de n'​afficher que les n dernières lignes. Si la  variable ​ de  l'​interpréteur
 +              HISTTIMEFORMAT existe et n'est pas NULL, elle est utilisée comme chaîne de format pour strftime(3) afin d'​afficher l'​horo‐
 +              datage associé à chaque élément de l'​historique. Aucun blanc ne sépare l'​horodatage ainsi mis en forme de la ligne  d'​his‐
 +              torique. Si un argument fichier est fourni, il est utilisé comme nom de fichier d'​historique ; sinon la valeur de HISTFILE
 +              est utilisée. Les options, si fournies, ont les significations suivantes :
 +              -c     ​Effacer la file de l'​historique en supprimant tous les éléments.
 +              -d nombre
 +                     ​Détruire l'​élément de l'​historique à la position nombre.
 +              -a     ​Ajouter les « nouvelles » lignes d'​historique (celles créées depuis le début de la session actuelle de  bash)  dans
 +                     le fichier d'​historique.
 +              -n     ​Lire ​ dans  le  fichier ​ d'​historique les lignes non encore lues et les ajouter à la file d'​historique actuelle. Il
 +                     ​s'​agit des lignes qui ont été ajoutées dans le fichier d'​historique depuis le début de la session bash.
 +              -r     Lire le contenu du fichier et l'​ajouter à l’historique actuel.
 +              -w     ​Écrire la liste actuelle d’historique dans le fichier d’historique,​ en écrasant le contenu précédent.
 +              -p     ​Effectuer la substitution d'​historique sur les arguments suivants et afficher le résultat sur la  sortie ​ standard.
 +                     ​Ne ​ pas  mémoriser ​ les  résultats ​ dans la file d'​historique. Chaque argument doit être protégé pour désactiver le
 +                     ​développement normal de l'​historique.
 +              -s     ​Conserver les arguments dans la file d'​historique comme un unique élément. La dernière commande de la file d'​histo‐
 +                     rique est supprimée avant que les arguments ne soient ajoutés.
 +
 +              Si  la  variable ​ HISTTIMEFORMAT ​ existe, ​ les  informations ​ d'​horodatage associées à chaque élément de l'​historique sont
 +              écrites dans le fichier d'​historique,​ repérés par le caractère de commentaire d'​historique. Quand le fichier ​ d'​historique
 +              est  lu, les lignes commençant par le caractère de commentaire d'​historique suivi immédiatement par un chiffre sont consi‐
 +              dérés comme des horodatages de la ligne d'​historique précédente. La valeur renvoyée est 0, sauf si une  option ​ incorrecte
 +              est  fournie, si une erreur se produit durant la lecture ou l'​écriture du fichier, si un nombre incorrect est fourni comme
 +              argument à -d ou si le développement de l'​historique fourni en argument à -p échoue.
 +
 +       jobs [-lnprs] [ tâche ... ]
 +       jobs -x commande [ arguments ... ]
 +              La première forme affiche la liste des tâches actives. Les options ont les significations suivantes :
 +              -l     ​Afficher les PID, en plus des informations normales.
 +              -n     ​Afficher uniquement des informations sur les tâches dont l'​état a changé depuis la dernière ​ notification ​ de  leur
 +                     état à