sh

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écifications 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 utilisé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 (consultez 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_profile,
              ~/.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 lecture 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'environnement,
       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èlement 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'utilisateur 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'environnement, 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 redirections, 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 diffé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 commandes 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 indiquer 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
              affectations 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 substitution de
              commande et de processus, ainsi que la suppression des protections
              sont effectués. Les opérateurs conditionnels 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’interpréteur était activée.
       L’opérateur = est équivalent à ==. Si l'option d'interpréteur nocasematch
       est activée, la mise en correspondance 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 rationnelle 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
       rationnelles 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 à correspondre en tant
       que chaîne. Les sous-chaînes mises en correspondance avec des
       sous-expressions entre parenthèses dans l'expression 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 correspondant à 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 expressions 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écuté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 chacun 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'interpré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
              suivante, 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 commande 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 commande 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 descripteurs 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 parenthèses
              sont facultatives. Le corps de la fonction est la commande
              composée commande-composée (consultez Commandes composées
              ci-dessus). Cette commande est généralement une liste de commandes
              entre { et }, mais peut être n'importe quelle commande 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 commentaires. 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-dessous), le
       caractère de développement de l'historique, généralement !, doit être
       protégé pour éviter le développement de l'historique.

       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 dollar 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 COMMANDES 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 protections (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 additionné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ération 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’interpré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éalisé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'origine. Quand il n'y a pas
              de paramètres positionnels, "$@" et $@ ne se développent en rien
              (c'est-à-dire qu'ils sont simplement é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'environnement 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'interpré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éé uniquement 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 correspondant 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). Utilisez 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 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_TYPE
              Configurée à une valeur entière correspondant au type de
              complètement essayé qui a provoqué l'appel d'une fonction de
              complè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 modifié, 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-dessus. 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).
       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 commandes 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'environnement 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 compatibilité et leurs
              conséquences. La valeur peut être un nombre décimal (par exemple
              4.2) ou entier (par exemple 42) correspondant au niveau de
              compatibilité voulu. Si BASH_COMPAT est détruite ou définie comme
              une chaîne vide, le niveau de compatibilité 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
              possibles). 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 commandes
              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élection.
              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éveloppement
              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 correspondant 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 suivantes 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 termine.
       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 troncature. L’interpréteur
              définit la valeur par défaut à la valeur de HISTSIZE après avoir
              lu tous les fichiers d’initialisation.
       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écution 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éveloppements 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éveloppement 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élection.
              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ésactive 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 COMMANDES
              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-dessus).
       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 exactement 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ÉVELOPPEMENT
              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 consulté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 explicitement 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 attributs
       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éveloppe 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 partie du mot original. Le
       comportement est analogue à celui des paramètres spéciaux * et @
       (consultez Paramètres spéciaux ci-dessus). ${#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 substitution 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éveloppement 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 accolades 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
       lexicographique 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 traitement 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 possible. 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 appartenant à 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éveloppement 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 utilise 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éveloppement 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'étendant jusqu'à la
              fin de la valeur. La longueur et le début sont des expressions
              arithmétiques (consultez ÉVALUATION ARITHMÉ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é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%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 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é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 correspondre à 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éveloppement 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éveloppé 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 signification propre sauf
       lorsqu'il est suivi de $, ` ou \. Le premier accent grave non protégé par
       une contre-oblique termine la substitution 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 à évaluer. 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 incorrecte, 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 correspondances. Les noms de
       fichiers « . » et « .. » sont toujours ignorés quand GLOBIGNORE existe et
       n'est pas NULL. Toutefois, configurer 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
                     équivalent à [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 composé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 traité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érateur 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 arithmé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 sortie 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 (descripteur 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 redirection 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 contenant 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 document_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 (descripteur 1) est
       utilisée. Si les chiffres du mot ne correspondent pas à un descripteur en
       écriture, une erreur de redirection se produit. 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éveloppe 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
       remplacement 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éveloppement 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 fonction 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 composé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 capture 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 fonctions. 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 fonction 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 priorité, 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'évaluation
       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 descripteur 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 composé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 redirections
              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 substitution 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'arguments, 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 fonction, 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 utilise 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 programme 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'interpré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
              commande ;

       •      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écialement 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 captures
              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 environnement 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 affectations 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 terminal 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'utilisateur 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 utilisant %-. 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 checkjobs 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_DIRTRIM) ;
              \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-dessous), 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 substitution 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émarrage de l'interpréteur, utiliser l'option +o emacs ou
       +o vi de la commande interne set (consultez COMMANDES INTERNES DE
       L'INTERPRÉ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étitions. Parfois,
       cependant, c'est le signe de l'argument qui est significatif.
       L'utilisation d'un argument négatif pour une commande 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ération 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 bibliothè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 symboliques 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 configurée
              en valeur positive, les préfixes communs plus longs que cette
              valeur sont remplacés par une ellipse lors de l'affichage 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 supprimant 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 positionné 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
              systè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
              commande. 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-standard,
              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 utilisera 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
              complè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ètements
              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'effectuer le
       paramétrage des raccourcis clavier et des variables selon les résultats
       de tests. Il y a quatre directives d'analyse utilisé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
                     raccourcis 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
                     programme 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'historique
       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 recherchera 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'historique, sous
              contrôle de la variable HISTCONTROL.  Si cette ligne est une ligne
              d'historique modifiée, restaurer cette derniè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éveloppement 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éveloppements
              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'écrasement, 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 backward-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 facultativement
              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'arguments de la commande suivante est
              multiplié par 4. Le compteur d'arguments est initialement à un,
              donc la première exécution 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 possibles. Des
              exécutions répétées de menu-complete parcourent la liste des
              complètements possibles, en insérant chaque correspondance 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 correspondant
              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 clavier.
       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
              correspondants.
       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), habituellement
              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'édition. 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 correspondent 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 correspondants
              est insérée à sa place. Si un argument numérique est fourni, un
              astérisque est ajouté avant le développement du chemin.
       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 complè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 effectué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ètement 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épertoire, 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écessaire 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 substitution 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 appelé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 filtrage des complètements produits pour le mot à
       compléter n'est effectué ; la fonction ou la commande a toute liberté
       dans la production 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ètement. Un & littéral peut être
       protégé par une contre-oblique ; la contre-oblique est supprimée avant la
       tentative de mise en correspondance. 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ètement
       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-symlinked-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 dynamique :

       _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 commandes à 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
       (consultez 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 HISTTIMEFORMAT 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'historique.

       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 multiligne dans le même élément de
       l'historique, en ajoutant des points-virgules si nécessaire pour
       préserver l'exactitude de la syntaxe. 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étition 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 saisie,
       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éveloppement 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éveloppement 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 modifications 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 rappels 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'historique 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 dernier
              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 contenus 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 finalement examiné si aucun fichier n'est
              trouvé dans PATH.  Si l'option sourcepath de la commande interne
              shopt est désactivé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éfinis, 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 commande 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 chemins de recherche
              pour trouver le répertoire contenant rép : tous les noms de
              répertoire contenus dans CDPATH sont parcourus à 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 symboliques 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éussit, 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 utilitaires 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 acceptée par la
              commande interne complete à l'exception de -p et -r et écrit le
              résultat sur la sortie standard. Lorsqu'on utilise 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ètements 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écessaire, les options -P et -S) devraient être protégées pour
              éviter leur développement avant que la commande interne complete
              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
                              correspondance.
                      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ésultats 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 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. 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 correspondent
                      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
                      correspond 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 modifier 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
              fonctions : 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
                     majuscule 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
                     minuscule 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 caractè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 commande
              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 permet 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 arguments 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 activé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 capture 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 contenant 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 automatiquement, il faut le faire manuellement entre des
              appels multiples à getopts au sein du même appel d'interpréteur si
              un nouveau 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 message
              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 correspondant est affiché. Si
              plusieurs arguments nom sont fournis avec -t, le nom est affiché
              avant chaque chemin d'accès complet 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'horodatage
              associé à chaque élément de l'historique. Aucun blanc ne sépare
              l'horodatage ainsi mis en forme de la ligne d'historique. 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'historique 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 considé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 à l'utilisateur.
              -p     Afficher uniquement le PID du meneur du groupe de processus
                     de la tâche.
              -r     N’afficher que les tâches en cours d'exécution.
              -s     N’afficher que les tâches suspendues.

              Si une tâche est indiquée, l'affichage est restreint aux
              informations relatives à cette tâche. L'état renvoyé est 0, sauf
              si une option incorrecte est rencontrée ou si une tâche incorrecte
              est fournie.

              Si l'option -x est fournie, jobs remplace toute tâche trouvée dans
              la commande ou dans ses arguments avec les Process Group ID
              correspondant, puis il exécute la commande en lui transmettant les
              arguments et en renvoyant son état final.

       kill [-s signal | -n num-signal | -signal] [pid | tâche] ...
       kill -l [signal | état_final]
              Envoyer le signal indiqué par signal ou num-signal aux processus
              indiqués par pid ou par tâche. signal est soit sous la forme de
              nom de signal (indifférent à la casse), comme SIGKILL (avec ou
              sans le préfixe SIG), soit sous forme numérique ; num-signal est
              un numéro de signal. Si signal est absent, SIGTERM est supposé par
              défaut. Un argument -l provoque l'affichage de la liste des noms
              de signaux. Si des arguments sont fournis quand -l est indiqué,
              les noms des signaux correspondant aux arguments sont affichés et
              l'état renvoyé est 0. L'argument état_final de l'option -l est un
              nombre indiquant soit un numéro de signal, soit l'état final d'un
              processus terminé par un signal. kill renvoie vrai si au moins un
              signal a été envoyé avec succès ou faux si une erreur s'est
              produite ou si une option incorrecte a été rencontrée.

       let argument [argument ...]
              Chaque argument est une expression arithmétique à évaluer
              (consultez ÉVALUATION ARITHMÉTIQUE ci-dessus). Si l'évaluation du
              dernier argument donne 0, let renvoie 1 ; sinon 0 est renvoyé.

       local [option] [nom[=valeur] ...]
              Pour chaque argument, une variable locale nom est créée et la
              valeur lui est affectée. L'option peut être n'importe quelle
              option acceptée par declare. Quand local est utilisé dans une
              fonction, la variable nom possède une portée visible restreinte à
              cette fonction et ses fils. Sans opérandes, local affiche la liste
              des variables locales sur la sortie standard. Une utilisation de
              local hors des fonctions est erronée. La valeur renvoyée est 0,
              sauf si local est utilisé hors d'une fonction, si un nom incorrect
              est fourni ou si nom est une variable en lecture seule.

       logout Terminer un interpréteur de connexion.

       mapfile [-n nombre] [-O origine] [-s nombre] [-t] [-u df] [-C rappel] [-c
       quantum] [tableau]
       readarray [-n nombre] [-O origine] [-s nombre] [-t] [-u df] [-C rappel]
       [-c quantum] [tableau]
              Lire les lignes depuis l'entrée standard dans la variable de type
              tableau indicé tableau, ou depuis le descripteur de fichier df si
              l'option -u est fournie. La variable MAPFILE est le tableau par
              défaut. Les options, si fournies, ont les significations
              suivantes :
              -n     Copier au plus nombre lignes. Si nombre est 0, toutes les
                     lignes sont copiées.
              -O     Commencer l'affectation de tableau à l'indice origine.
                     L'indice par défaut est 0.
              -s     Supprimer les nombre premières lignes lues.
              -t     Éliminer le changement de ligne de chaque ligne lue.
              -u     Lire les lignes à partir du descripteur de fichier df
                     plutôt que depuis l'entrée standard.
              -C     Évaluer rappel à chaque fois que quantum lignes sont lues.
                     L'option -c précise le quantum.
              -c     Préciser le nombre de lignes entre chaque appel à rappel.

              Si -C est précisé sans -c, le quantum par défaut est 5000. Quand
              rappel est évalué, l'indice du prochain élément de tableau à
              affecter et la ligne à affecter à cet élément sont fournis en
              arguments supplémentaires. rappel est évalué après la lecture de
              la ligne, mais avant l'affectation de l'élément de tableau.

              Si aucune origine explicite n'est fournie, mapfile effacera
              tableau avant de lui affecter des valeurs.

              mapfile termine avec succès sauf si une option ou un de ses
              arguments n'est pas valable, ou si tableau n'est pas valable,
              n'est pas un tableau indicé ou si son affectation est impossible.

       popd [-n] [+n] [-n]
              Enlever des éléments de la pile des répertoires. Sans arguments,
              seul le répertoire du sommet de la pile est éliminé et un cd est
              effectué en direction du nouveau répertoire au sommet. Les
              arguments, si fournis, ont les significations suivantes :
              -n     Empêcher le changement normal de répertoire lors de la
                     suppression d'un répertoire de la pile. Seule la pile est
                     manipulée.
              +n     Supprimer le n-ième élément de la liste affichée par dirs,
                     en comptant depuis la gauche à partir de zéro. Par
                     exemple : « popd +0 » enlève le premier répertoire, « popd
                     +1 » le second.
              -n     Supprimer le n-ième élément de la liste affichée par dirs,
                     en comptant depuis la droite à partir de zéro. Par
                     exemple : « popd -0 » supprime le dernier répertoire et
                     « popd -1 » l'avant-dernier.

              Si la commande popd réussit, un dirs est effectué et l'état
              renvoyé est 0. popd renvoie faux si une option incorrecte est
              trouvée, si la pile de répertoires est vide, si le répertoire
              indiqué est absent de la pile ou si le changement de répertoire a
              échoué.

       printf [-v var] format [arguments]
              Écrire les arguments mis en forme sur la sortie standard sous le
              contrôle du format. L'option -v conduit à affecter la sortie à la
              variable var plutôt que de l'afficher sur la sortie standard.

              Ce format est une chaîne contenant trois types de caractères : les
              caractères normaux, qui sont simplement copiés sur la sortie
              standard, les caractères de protection qui sont convertis puis
              copiés sur la sortie standard et les spécifications de format, qui
              conduisent chacun à l'affichage des arguments successifs. En plus
              des spécifications de format standard de printf(1), printf
              interprète les extensions suivantes :
              %b     conduit printf à développer les suites de caractères de
                     protection par contre-oblique se trouvant dans l'argument
                     correspondant (à l'exception de \c qui termine la sortie,
                     des contre-obliques dans \', \" et \? qui ne sont pas
                     supprimées et des suites de caractères de protection pour
                     les nombres en octal commençant par \0 qui peuvent contenir
                     jusqu'à quatre chiffres) ;
              %q     conduit printf à afficher l'argument correspondant dans un
                     format réutilisable en entrée de l'interpréteur ;
              %(formatdate)T
                     conduit printf à afficher la chaîne date-heure résultant de
                     l'utilisation de formatdate en tant que chaîne de format
                     pour strftime(3). L'argument correspondant est un entier
                     représentant le temps en seconde écoulé depuis epoch. Deux
                     valeurs particulières d'argument peuvent être utilisées :
                     -1 représente l'heure actuelle et -2 l'heure à laquelle
                     l'interpréteur a été invoqué. Si aucun argument n’est
                     indiqué, la conversion se comporte comme si -1 avait été
                     fourni. C’est une exception au comportement habituel de
                     printf.

              Les arguments des spécificateurs de format qui ne sont pas des
              chaînes sont traités comme des constantes C, sauf qu'un signe plus
              ou moins est permis au début, et que, si le premier caractère est
              un guillemet simple ou double, la valeur est la valeur ASCII du
              caractère suivant.

              Le format est réutilisé si nécessaire pour englober tous les
              arguments. Si le format demande plus d'arguments que fournis, les
              spécifications supplémentaires se comportent comme si une valeur
              zéro ou une chaîne NULL, suivant le besoin, avaient été fournies.
              La valeur renvoyée est zéro en cas de succès, différente de zéro
              en cas d'échec.

       pushd [-n] [+n] [-n]
       pushd [-n] [rép]
              Ajouter un répertoire au sommet de la pile des répertoires ou
              effectuer une rotation dans la pile, en ramenant le répertoire
              actuel au sommet. Sans argument, cette commande échange les deux
              répertoires au sommet et renvoie 0, sauf si la pile est vide. Les
              arguments, si fournis, ont les significations suivantes :
              -n     Empêcher le changement normal de répertoire lors d'un ajout
                     dans la pile. Seule la pile est manipulée.
              +n     Effectuer une rotation dans la pile, de façon à amener au
                     sommet le n-ième répertoire (de la liste affichée par dirs,
                     en comptant depuis la gauche à partir de zéro).
              -n     Effectuer une rotation dans la pile, de façon à amener au
                     sommet le n-ième répertoire (de la liste affichée par dirs,
                     en comptant depuis la gauche à partir de zéro).
              rép    Ajouter le répertoire rép au sommet de la pile de
                     répertoires et en faire le nouveau répertoire de travail
                     comme s’il avait été fourni en argument de la commande
                     interne cd.

              Si la commande pushd réussit, un dirs est aussi effectué. Avec la
              première forme, pushd renvoie 0 sauf si le déplacement vers rép
              échoue. Avec la seconde forme, pushd renvoie 0, sauf si la pile
              est vide, si un élément inexistant dans la pile est indiqué ou si
              le changement de répertoire vers le nouveau répertoire indiqué
              échoue.

       pwd [-LP]
              Afficher le chemin d'accès absolu au répertoire de travail actuel.
              Le chemin ne contiendra pas de liens symboliques si l'option -P
              est fournie, ou si l'option -o physical de la commande interne set
              est activée. Si l'option -L est utilisée, le chemin affiché peut
              contenir des liens symboliques. L'état renvoyé est 0, sauf si une
              erreur s'est produite lors de la lecture du nom du répertoire
              actuel ou si une option incorrecte est fournie.

       read [-ers] [-a tableau] [-d délimiteur] [-i texte] [-n nb_car] [-N
       nb_car] [-p invite] [-t délai] [-u df] [nom ...]
              Une ligne est lue depuis l'entrée standard ou à partir du
              descripteur de fichier df fourni en argument à l'option -u, puis
              le premier mot de cette ligne est affecté au premier nom, le
              second mot au second nom, et ainsi de suite avec les mots restants
              et leurs séparateurs affectés au dernier nom. S'il y a moins de
              mots lus dans le flux d'entrée que de variables, des valeurs vides
              sont affectées à celles restantes. Les caractères contenus dans la
              variable IFS sont utilisés pour découper la ligne en mots en
              utilisant les mêmes règles que celles utilisées par l’interpréteur
              pour le développement (décrites précédemment dans Découpage en
              mots ). Le caractère contre-oblique (\) permet de supprimer toute
              signification spéciale pour le caractère suivant et autorise la
              continuation de ligne. Les options, si fournies, ont les
              significations suivantes :
              -a tableau
                     Les mots sont affectés aux indices successifs d'une
                     variable tableau de nom tableau, en commençant à 0. tableau
                     est détruit avant que de nouvelles valeurs ne soient
                     affectées. Les autres arguments nom sont ignorés.
              -d délimiteur
                     Le premier caractère de délimiteur est utilisé pour
                     terminer la ligne de saisie, plutôt qu'un changement de
                     ligne.
              -e     Si l'entrée standard provient d'un terminal, la
                     bibliothèque readline (consultez READLINE ci-dessus) est
                     utilisée pour obtenir la ligne. Readline utilise les
                     configurations d'édition en cours (ou par défaut, si
                     l'édition de ligne n'était pas préalablement active).
              -i texte
                     Si readline est utilisée pour lire la ligne, texte est
                     placé dans le tampon d'édition avant le début de l'édition.
              -n nb_car
                     read s'arrête après avoir lu nb_car caractères plutôt que
                     d'attendre une ligne complète en entrée, mais un délimiteur
                     est respecté si moins de nb_car caractères ont été lus
                     avant le délimiteur.
              -N nb_car
                     read s'arrête après avoir lu exactement nb_car caractères
                     plutôt que d'attendre une ligne complète en entrée, sauf si
                     une fin de fichier (EOF) est rencontrée ou si read dépasse
                     son délai de réponse. Les délimiteurs rencontrés en entrée
                     ne sont pas pris en compte et n'entraînent pas la fin de
                     read avant que nb_car caractères n'aient été lus.
              -p invite
                     Afficher invite sur la sortie d'erreur standard, sans
                     caractère final de changement de ligne, avant d'essayer de
                     lire toute nouvelle saisie. L'invite est affichée seulement
                     si l'entrée vient d'un terminal.
              -r     La contre-oblique n'agit pas comme un caractère de
                     protection. La contre-oblique est considérée comme faisant
                     partie de la ligne. En particulier une contre-oblique
                     suivie d'un changement de ligne n'est pas considérée comme
                     une continuation de ligne.
              -s     Mode silencieux. Si une entrée arrive à partir d'un
                     terminal, les caractères ne sont pas affichés.
              -t délai
                     Conduire read à expirer et renvoyer un échec si une ligne
                     complète en entrée (ou un nombre indiqué de caractères) n'a
                     pas été lue dans le délai en seconde. délai est un nombre
                     décimal avec éventuellement des chiffres après la virgule
                     (NdT : point en l'occurrence). Cette option n'est effective
                     que si read lit l'entrée à partir d'un terminal, d'un tube,
                     ou depuis un autre fichier spécial ; elle n'a aucun effet
                     lors de la lecture d'un fichier normal. Si read expire,
                     read sauvegarde toute entrée partielle lue dans la variable
                     nom indiquée. Si délai est nul, read se termine
                     immédiatement, sans essayer de lire des données. L’état de
                     sortie est 0 si une entrée est disponible pour le
                     descripteur de fichier indiqué, non nulle sinon. L'état
                     final est supérieur à 128 si le délai est dépassé.
              -u df  Lire l'entrée à partir du descripteur de fichier df.

              Si aucun nom n'est fourni, la ligne lue est affectée entièrement à
              la variable REPLY.  Le code renvoyé est zéro, sauf si une fin de
              fichier (EOF) est rencontrée, si read dépasse son délai de réponse
              (auquel cas le code renvoyé est plus grand que 128), en cas
              d’erreur d’affectation (comme une affectation de variable à une
              variable en lecture seule) ou si un descripteur de fichier
              incorrect est fourni en argument de -u.

       readonly [-aAf] [-p] [nom[=mot] ...]
              Les noms indiqués reçoivent un attribut lecture seule ; les
              valeurs de ces noms ne pourront plus être modifiées par des
              affectations ultérieures. Si l'option -f est fournie, les
              fonctions correspondant à ces noms sont marquées en conséquence.
              L'option -a restreint l'action aux variables tableaux indicés ;
              l'option -A restreint l'action aux variables tableaux associatifs.
              Si les deux options sont fournies, -A est prioritaire. Si aucun
              argument nom n'est indiqué ou si l'option -p est fournie, une
              liste de tous les noms en lecture seule est affichée. Les autres
              options peuvent être utilisées pour restreindre l'affichage à un
              sous-ensemble de l'ensemble des noms en lecture seule. L'option -p
              conduit à afficher la sortie dans un format susceptible d'être
              réutilisé en entrée. Si le nom d'une variable est suivi par =mot,
              la variable est configurée à mot. L'état renvoyé est 0, sauf si
              une option incorrecte a été rencontrée, si l'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.

       return [n]
              Forcer une fonction à arrêter son exécution et à renvoyer la
              valeur indiquée par n dans son contexte d'appel. Si n est omis, la
              valeur renvoyée est celle de la dernière commande exécutée dans le
              corps de la fonction. Si return est utilisée hors d'une fonction,
              mais pendant l'exécution d'un script par la commande . (source),
              elle conduit à l'arrêt de l'exécution du script par l'interpréteur
              et renvoie comme état final du script : soit n, soit l'état final
              de la dernière commande exécutée dans le script. Si n est fourni,
              la valeur de retour est ses 8 bits de poids faible. La valeur de
              retour est non nulle si un argument non numérique est fourni à
              return, ou si elle est utilisée hors d'une fonction ou d'un script
              exécuté par . ou source. Toute commande associée à la capture de
              RETURN est exécutée avant la reprise de l'exécution après la
              fonction ou le script.

       set [--abefhkmnptuvxBCEHPT] [-o nom_d_option] [argument ...]
       set [+abefhkmnptuvxBCEHPT] [+o nom_d_option] [argument ...]
              Sans options, le nom et la valeur de toutes les variables de
              l'interpréteur sont affichés dans un format susceptible d'être
              réutilisé en entrée pour créer ou réinitialiser les variables
              actuelles. Les variables en lecture seule ne peuvent pas être
              réinitialisées. En mode posix, seules les variables de
              l'interpréteur sont affichées. La sortie est triée en fonction des
              paramètres linguistiques régionaux actuels. Lorsque des options
              sont indiquées, elles créent ou détruisent des attributs de
              l'interpréteur. Tous les arguments restant après traitement des
              options sont considérés comme des valeurs pour les paramètres
              positionnels et sont affectés, dans l'ordre, à : $1, $2, ... $n.
              Les options, si indiquées, ont les significations suivantes :
              -a      Marquer automatiquement des variables et fonctions
                      modifiées ou créées pour qu'elles soient exportées dans
                      l'environnement des commandes exécutées ultérieurement.
              -b      Signaler l'état des tâches terminées en arrière-plan
                      immédiatement, plutôt que d'attendre l'affichage de la
                      prochaine invite de base. N'est effectif que si le
                      contrôle des tâches est activé.
              -e      Se terminer immédiatement si une conduite (qui peut être
                      réduite à une unique commande simple), une liste ou une
                      commande composée (consultez GRAMMAIRE DE L'INTERPRÉTEUR
                      ci-dessus) se termine avec un état différent de zéro.
                      L'interpréteur ne se termine pas si la commande qui échoue
                      fait partie d'une liste de commandes immédiatement suivie
                      par un mot clef while ou until, d'un test suivant les mots
                      réservés if ou elif, d'une commande exécutée dans une
                      liste && ou || sauf si la commande est située après le
                      dernier && ou ||, d'une commande de conduite à l'exception
                      de la dernière, ou si la valeur renvoyée par la commande
                      est inversée par !. Si une commande composée autre qu’un
                      sous-interpréteur renvoie un état non nul parce qu’une
                      commande échoue alors que -e était ignoré, l’interpréteur
                      ne se termine pas. Une capture sur ERR, si existante, est
                      exécutée avant que l'interpréteur ne se termine. Cette
                      option s'applique à l'environnement de l'interpréteur
                      ainsi qu'à l'environnement de chaque sous-interpréteur
                      individuellement (consultez ENVIRONNEMENT D'EXÉCUTION DES
                      COMMANDES ci-dessus), et peut conduire des
                      sous-interpréteurs à se terminer avant d'y avoir exécuté
                      toutes les commandes.

                      Si une commande composée ou une fonction de l’interpréteur
                      s’exécutent dans un contexte où -e est ignoré, aucune des
                      commandes exécutées dans une commande composée ou dans un
                      corps de fonction ne sera affectée par le réglage -e, même
                      si -e est défini et qu’une commande renvoie un état
                      d’échec. Si une commande composée ou une fonction de
                      l’interpréteur définissent -e pendant son exécution dans
                      un contexte où -e est ignoré, ce réglage n’aura aucun
                      effet avant la fin de la commande composée ou de la
                      commande contenant l’appel de fonction.
              -f      Désactiver le développement des chemins.
              -h      Mémoriser l'emplacement des commandes lors de leur
                      exécution. Activée par défaut.
              -k      Tous les arguments sous la forme d'affectations sont
                      placés dans l'environnement d'une commande, et non pas
                      seulement ceux qui précèdent le nom de la commande.
              -m      Mode supervision. Le contrôle des tâches est activé. Cette
                      option est activée par défaut pour les interpréteurs
                      interactifs sur les systèmes qui le permettent (consultez
                      CONTRÔLE DES TÂCHES ci-dessus). Tous les processus sont
                      exécutés dans un groupe de processus séparé. Quand une
                      tâche en arrière-plan se termine, l’interpréteur affiche
                      une ligne contenant son état final.
              -n      Lecture de commandes sans exécution. Cela peut être
                      utilisé pour rechercher les erreurs de syntaxe dans un
                      script. Cette option est ignorée par les interpréteurs
                      interactifs.
              -o nom_d_option
                      Le nom_d_option est l'un des suivants :
                      allexport
                              Identique à -a.
                      braceexpand
                              Identique à -B.
                      emacs   Utiliser une interface d'édition des lignes de
                              commande « à la Emacs ». C'est le comportement
                              activé par défaut quand l'interpréteur est
                              interactif, sauf si l'interpréteur est démarré
                              avec l'option --noediting. L'interface d'édition
                              utilisée par read -e est modifiée également.
                      errexit Identique à -e.
                      errtrace
                              Identique à -E.
                      functrace
                              Identique à -T.
                      hashall Identique à -h.
                      histexpand
                              Identique à -H.
                      history Activer l'historique des commandes, comme décrit
                              ci-dessus dans HISTORY. Cette option est activée
                              par défaut dans les interpréteurs interactifs.
                      ignoreeof
                              Identique à l'exécution de la commande
                              d'interpréteur « IGNOREEOF=10 » (consultez
                              Variables de l'interpréteur ci-dessus).
                      keyword Identique à -k.
                      monitor Identique à -m.
                      noclobber
                              Identique à -C.
                      noexec  Identique à -n.
                      noglob  Identique à -f.
                      nolog   Actuellement ignorée.
                      notify  Identique à -b.
                      nounset Identique à -u.
                      onecmd  Identique à -t.
                      physical
                              Identique à -P.
                      pipefail
                              Si existante, la valeur renvoyée par une conduite
                              est la valeur de la dernière commande (la plus à
                              droite) à terminer avec un état final différent de
                              zéro ou zéro si toutes les commandes de la
                              conduite terminent avec succès. Désactivée par
                              défaut.
                      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.
                      privileged
                              Identique à -p.
                      verbose Identique à -v.
                      vi      Utiliser une interface d'édition des lignes de
                              commande « à la vi ». L'interface d'édition
                              utilisée par read -e est modifiée également.
                      xtrace  Identique à -x.
                      Si -o est fournie sans nom_d_option, les valeurs actuelles
                      des options sont affichées. Si +o est fournie sans
                      nom_d_option, la série de commandes set permettant de
                      recréer la configuration actuelle d'options est affichée
                      sur la sortie standard.
              -p      Basculer en mode privilégié. Dans ce mode, les fichiers
                      $ENV et $BASH_ENV ne sont pas traités, les fonctions de
                      l'interpréteur ne sont pas héritées de l'environnement, et
                      les variables SHELLOPTS, BASHOPTS, CDPATH, et GLOBIGNORE,
                      si présentes dans l'environnement, sont ignorées. Si
                      l'interpréteur démarre avec un UID (ou respectivement un
                      GID) effectif différent de son UID (GID) réel et si
                      l'option -p n'est pas fournie, ce comportement est
                      appliqué et l'UID (GID) effectif est positionné à l'UID
                      (GID) réel. Si l'option -p est fournie au démarrage, l'UID
                      (GID) effectif n'est pas modifié. Désactiver cette option
                      conduit à la configuration des UID et GID effectifs à la
                      valeur des UID et GID réels.
              -t      Terminer après lecture et exécution d'une commande.
              -u      Considérer les variables inexistantes et les paramètres
                      différents des paramètres spéciaux « @ » et « * » comme
                      des erreurs lors du développement des paramètres. Si un
                      développement de variable inexistante ou de paramètre est
                      tenté, l'interpréteur affiche un message d'erreur et, s'il
                      n'est pas interactif, termine avec un état différent de
                      zéro.
              -v      Afficher les lignes en entrée de l'interpréteur
                      lorsqu'elles sont lues.
              -x      Après le développement de chaque commande simple, commande
                      for, commande case, commande select ou commande for
                      arithmétique, afficher la valeur développée de PS4, suivie
                      de la commande et ses arguments développés ou la liste de
                      mots associés.
              -B      L'interpréteur effectue le développement des accolades
                      (consultez Développement des accolades ci-dessus). Activée
                      par défaut.
              -C      Si configurée, bash n'écrasera pas un fichier existant
                      avec les opérateurs >, >& et <>. Ce comportement peut être
                      surpassé lors de la création d'un fichier de sortie en
                      utilisant l'opérateur de redirection >| à la place de >.
              -E      Si configurée, toute capture sur ERR est héritée par les
                      fonctions d'interpréteur, les substitutions de commandes
                      et les commandes exécutées dans un sous-interpréteur. La
                      capture de ERR n'est normalement pas héritée dans de tels
                      cas.
              -H      Activer le style ! de substitution d'historique. C'est le
                      comportement par défaut lorsque l'interpréteur est
                      interactif.
              -P      Si configurée, l'interpréteur ne résout pas les liens
                      symboliques en exécutant des commandes comme cd qui
                      modifient le répertoire de travail. Il utilise à la place
                      le répertoire physique. Par défaut bash suit la chaîne
                      logique des répertoires lors des commandes qui modifient
                      le répertoire actuel.
              -T      Si configurée, toutes les captures de DEBUG et RETURN sont
                      héritées par les fonctions de l'interpréteur, les
                      substitutions de commande et les commandes exécutées dans
                      un sous-interpréteur. Les captures de DEBUG et RETURN ne
                      sont normalement pas héritées dans de tels cas.
              --      Si aucun argument ne suit cette option, alors les
                      paramètres positionnels sont détruits. Sinon, les
                      paramètres positionnels sont configurés aux arguments,
                      même si certains d'entre eux commencent par un -.
              -       Marquer la fin des options, tous les arguments restants
                      sont alors affectés aux paramètres positionnels. Les
                      options -x et -v sont désactivées. S'il n'y a pas
                      d'arguments, les paramètres positionnels ne sont pas
                      modifiés.

              Par défaut les attributs sont désactivés, sauf indication
              contraire. En utilisant « + » à la place de « - », les options
              sont désactivées. Les options peuvent également être fournies en
              argument lors de l'appel de l'interpréteur. Le jeu actuel des
              options peut être trouvé dans $-. La valeur renvoyée est toujours
              vrai, sauf si une option incorrecte est rencontrée.

       shift [n]
              Les paramètres positionnels à partir de n+1 ... sont renommés en
              $1 .... Les paramètres représentés par les nombres $# jusqu'à
              $#-n+1 sont détruits. n doit être un entier positif inférieur ou
              égal à $#. Si n vaut 0, aucun paramètre n'est modifié. Si n est
              omis, on suppose qu'il vaut 1. Si n est supérieur à $#, les
              paramètres positionnels ne sont pas modifiés. L'état renvoyé est
              strictement positif si n est supérieur à $# ou strictement
              négatif, sinon 0 est renvoyé.

       shopt [-pqsu] [-o] [nom_opt ...]
              Basculer la valeur des réglages contrôlant le comportement de
              gestion des options de l'interpréteur. Les réglages peuvent soit
              être ceux ci-dessous, soit, si l’option -o est utilisée, ceux
              disponibles avec l’option -o de la commande interne set. Sans
              option ou avec l'option -p, une liste de toutes les options
              configurables est affichée, avec l'indication de l'état de chacune
              d'entre elles. L'option -p conduit à un affichage de la sortie
              sous une forme susceptible d'être réutilisée en entrée. Les autres
              options ont les significations suivantes :
              -s     Activer (créer) chaque nom_opt.
              -u     Désactiver (détruire) chaque nom_opt.
              -q     Supprimer la sortie normale (mode silencieux) ; l'état
                     renvoyé indique si nom_opt est existante ou non. Si
                     plusieurs arguments nom_opt sont indiqués avec -q, l'état
                     renvoyé est zéro si tous les nom_opt sont activés ;
                     différent de zéro sinon.
              -o     Restreindre les valeurs de nom_opt à celles définies pour
                     l'option -o de la commande interne set.

              Si l'option -s ou -u est utilisée sans argument nom_opt, shopt
              affiche respectivement les options existantes ou non existantes.
              Sauf indication contraire, les options shopt sont désactivées
              (détruites) par défaut.

              L'état renvoyé lors d'un affichage des options est zéro si tous
              les nom_opt sont activés, différent de zéro sinon. Lors de la
              création ou de la destruction d'options, l'état renvoyé est zéro,
              à moins que nom_opt ne soit pas une option correcte de
              l'interpréteur.

              La liste des options shopt est :

              autocd  Si existante, un nom de commande qui est le nom d'un
                      répertoire est exécuté comme s'il était l'argument de la
                      commande interne cd. Cette option n'est utilisée que par
                      les interpréteurs interactifs.
              cdable_vars
                      Si existante, un argument de la commande interne cd qui
                      n'est pas un répertoire est supposé être un nom de
                      variable dont la valeur est le répertoire visé.
              cdspell Si existante, les erreurs minimes de frappe dans un
                      composant du répertoire en argument de la commande cd
                      seront corrigées. Les erreurs corrigées sont les
                      inversions d'un caractère, un caractère manquant et un
                      caractère en trop. Si une correction est possible, le nom
                      de répertoire corrigé est affiché et la commande est
                      exécuté. Cette option n'est utilisée que par les
                      interpréteurs interactifs.
              checkhash
                      Si existante, bash vérifie si une commande trouvée dans la
                      table de hachage existe avant d'essayer de l'exécuter. Si
                      une commande hachée n'existe plus, une recherche normale
                      de chemin est effectuée.
              checkjobs
                      Si existante, bash affiche la liste des états de toutes
                      les tâches en cours et arrêtées avant de terminer un
                      interpréteur interactif. Si des tâches sont en cours, la
                      sortie est différée jusqu'à ce qu'une nouvelle sortie soit
                      tentée sans commande intermédiaire (consultez CONTRÔLE DES
                      TÂCHES ci-dessus). L'interpréteur repousse toujours la
                      sortie si des tâches sont arrêtées.
              checkwinsize
                      Si existante, bash vérifie la taille de la fenêtre après
                      chaque commande et, au besoin, met à jour les valeurs des
                      variables LINES et COLUMNS.
              cmdhist Si existante, bash essaie de sauvegarder les commandes
                      s'étendant sur plusieurs lignes en un seul élément
                      d'historique. Cela facilite l'édition ultérieure de
                      commandes multilignes.
              compat31
                      Si existante, bash modifie son comportement de manière
                      compatible à la version 3.1 en respectant les arguments
                      protégés pour l’opérateur =~ de la commande conditionnelle
                      [[ et les comparaisons de chaînes spécifiques aux
                      paramètres linguistiques régionaux lors de l'utilisation
                      des opérateurs < et > de la commande conditionnelle [[.
                      Les versions de bash antérieure à 4.1 utilisent la
                      collation ASCII et strcmp(3). bash à partir de la
                      version 4.1 utilise la suite de collation des paramètres
                      linguistiques régionaux et strcoll(3).
              compat32
                      Si existante, bash modifie son comportement de manière
                      compatible à la version 3.2 en respectant les comparaisons
                      de chaînes spécifiques aux paramètres linguistiques
                      régionaux lors de l'utilisation des opérateurs < et > de
                      la commande conditionnelle [[ (consultez le paragraphe
                      précédent).
              compat40
                      Si existante, bash modifie son comportement de manière
                      compatible à la version 4.0 en respectant les comparaisons
                      de chaînes spécifiques aux paramètres linguistiques
                      régionaux lors de l'utilisation des opérateurs < et > de
                      la commande conditionnelle [[ (consultez la description de
                      compat31) et l'effet d'interruption de liste de commandes.
                      À partir de la version 4.0, bash interrompt la liste comme
                      si l’interpréteur recevait l’interruption ; les versions
                      précédentes continuent avec la commande suivante de la
                      liste.
              compat41
                      Si existante, bash, lorsqu'il est en mode posix, traite le
                      guillemet simple dans l'expansion de paramètre entre
                      guillemets doubles comme un caractère spécial. Les
                      guillemets simples doivent correspondre (et même
                      s'appairer) et les caractères entre guillemets simples
                      sont considérés protégés. C'est le comportement du mode
                      posix de la version 4.1. Le comportement par défaut de
                      bash reste le même que dans les versions précédentes.
              compat42
                      Si existante, bash ne traite pas la chaîne de remplacement
                      dans le motif de substitution du développement de mot en
                      utilisant la suppression des guillemets.
              complete_fullquote
                      Si existante, bash protège tous les métacaractères de
                      l’interpréteur dans les noms de fichier et de répertoire
                      lors du complètement. Si non existante, bash supprime les
                      métacaractères comme les signes dollar du jeu de
                      caractères qui sera protégé dans les noms de fichiers
                      complétés quand ces métacaractères apparaissent dans des
                      références de variable d’interpréteur dans des mots à
                      compléter. Cela signifie que les signes dollar dans les
                      noms de variables qui se développent en répertoires ne
                      seront pas protégés ; cependant, tous les signes dollar
                      apparaissant dans les noms de fichier ne seront pas
                      protégés non plus. Ce n’est actif que si bash utilise des
                      contre-obliques pour protéger des noms de fichier
                      complétés. Cette variable est définie par défaut, ce qui
                      est le comportement de bash par défaut jusqu’à la
                      version 4.2.
              direxpand
                      Si existante, bash remplace les noms de répertoire par les
                      résultats de développement de mots lors du complètement
                      des noms de fichier. Cela modifie le contenu du tampon
                      d'édition de readline. Sinon, bash essaye de conserver ce
                      que l'utilisateur a tapé.
              dirspell
                      Si existante, bash essaie de corriger les erreurs de
                      frappe sur les noms de répertoire lors du complètement de
                      mot si le nom de répertoire initialement fourni n'existe
                      pas.
              dotglob Si existante, bash inclut les noms de fichiers commençant
                      par un « . » dans les résultats des développements de
                      chemins.
              execfail
                      Si existante, un interpréteur non interactif ne terminera
                      pas s'il ne peut exécuter un fichier indiqué en argument
                      de la commande interne exec. Un interpréteur interactif ne
                      termine pas si exec échoue.
              expand_aliases
                      Si existante, les alias sont développés comme décrit
                      ci-dessus, dans ALIAS.  Cette option est activée par
                      défaut pour les interpréteurs interactifs.
              extdebug
                      Si existante, le comportement attendu par les traceurs est
                      activé :
                      1.     L'option -F de la commande interne declare affiche
                             le nom du fichier source et le numéro de ligne
                             correspondant à chaque nom de fonction fourni comme
                             argument.
                      2.     Si la commande lancée par la capture de DEBUG
                             renvoie une valeur différente de zéro, la commande
                             suivante est sautée et n'est pas exécutée.
                      3.     Si la commande lancée par la capture de DEBUG
                             renvoie la valeur 2 et si l'interpréteur s'exécute
                             dans un sous-programme (une fonction de
                             l'interpréteur ou un script exécuté par les
                             commandes internes . ou source), un appel à return
                             est simulé.
                      4.     BASH_ARGC et BASH_ARGV sont mises à jour comme
                             expliqué dans leurs descriptions ci-dessus.
                      5.     Le traçage des fonctions est activé : la
                             substitution de commande, les fonctions de
                             l'interpréteur et les sous-interpréteurs appelés
                             avec ( command ) héritent des captures de DEBUG et
                             RETURN.
                      6.     Le traçage d'erreur est activé : la substitution de
                             commande, les fonctions de l'interpréteur et les
                             sous-interpréteurs appelés avec ( command )
                             héritent de la capture de ERR.
              extglob Si existante, les fonctionnalités étendues de mise en
                      correspondance décrites ci-dessus dans Développement des
                      chemins sont activées.
              extquote
                      Si existante, la protection par $'chaîne' et $"chaîne" est
                      effectuée à l'intérieur des développements de
                      ${paramètres} entre guillemets doubles. Cette option est
                      activée par défaut.
              failglob
                      Si existante, les motifs qui échouent à faire correspondre
                      les noms de fichiers pendant le développement des chemins
                      font qu'ils provoqueront une erreur de développement.
              force_fignore
                      Si existante, les suffixes indiqués par la variable de
                      l'interpréteur FIGNORE conduiront des mots à être ignorés
                      lors du complètement de mot, même si les mots ignorés sont
                      les seuls complètements possibles. Consultez VARIABLES DE
                      L'INTERPRÉTEUR ci-dessus pour une description de FIGNORE.
                      Cette option est activée par défaut.
              globasciiranges
                      Si existante, les expressions d’intervalle utilisées dans
                      les motifs de correspondance des expressions entre
                      crochets (consultez Motifs génériques ci-dessus) se
                      comportent comme avec les paramètres régionaux
                      traditionnels de C lors des comparaisons. Cela signifie
                      que l’ordre de collation des paramètres régionaux actuels
                      n’est pas pris en compte, donc b ne sera pas ordonné entre
                      A et B, et les caractères ASCII en majuscule et minuscule
                      seront fusionnés.
              globstar
                      Si existante, le motif ** utilisé dans un contexte de
                      développement des chemins correspondra à tous les fichiers
                      et zéro ou plusieurs répertoires et sous-répertoires. Si
                      le motif est suivi de /, seuls les répertoires et
                      sous-répertoires correspondent.
              gnu_errfmt
                      Si existante, les messages d'erreur de l'interpréteur
                      seront écrits dans le format standard GNU des messages
                      d'erreurs.
              histappend
                      Si existante, la file d'historique est ajoutée au fichier
                      désigné par la valeur de la variable HISTFILE lorsque
                      l'interpréteur termine, plutôt que d'écraser ce fichier.
              histreedit
                      Si existante et si readline est utilisée, un utilisateur
                      peut rééditer une substitution d'historique qui a échoué.
              histverify
                      Si existante et si readline est utilisée, le résultat de
                      la substitution d'historique n'est pas transmise
                      immédiatement à l'analyseur de l'interpréteur. À la place,
                      la ligne résultante est chargée dans le tampon d'édition
                      de readline, permettant des modifications ultérieures.
              hostcomplete
                      Si existante et si readline est utilisée, bash essayera
                      d'effectuer le complètement des noms de machines lorsqu'un
                      mot contient un @ (consultez Complètement dans READLINE
                      ci-dessus). Cette option est activée par défaut.
              huponexit
                      Si existante, bash enverra un signal SIGHUP à toutes les
                      tâches lorsqu'un interpréteur de connexion interactif
                      termine.
              interactive_comments
                      Si existante, un mot commençant par un # conduira ce mot
                      et tous les autres caractères restants de la ligne à être
                      ignorés dans un interpréteur interactif (consultez
                      COMMENTAIRES ci-dessus). Cette option est activée par
                      défaut.
              lastpipe
                      Si existante, et que le contrôle des tâches n'est pas
                      activé, l'interpréteur exécute la dernière commande d'une
                      conduite non exécutée en arrière-plan dans l'environnement
                      d'interpréteur actuel.
              lithist Si existante et si l'option cmdhist est activée, les
                      commandes multilignes sont sauvegardées dans l'historique
                      avec des changements de ligne incorporés comme séparateurs
                      plutôt que des points-virgules là où c'est possible.
              login_shell
                      L'interpréteur crée cette option s'il est démarré en tant
                      qu'interpréteur de connexion (consultez APPEL ci-dessus).
                      La valeur ne peut être modifiée.
              mailwarn
                      Si existante et s'il a été accédé à un fichier que bash
                      surveille pour les courriers depuis sa dernière
                      vérification, le message « Le courrier dans
                      fichier_de_courrier a été lu. » est affiché.
              no_empty_cmd_completion
                      Si existante et si readline est utilisée, bash n'essaiera
                      pas d'utiliser le PATH pour de possibles complètements
                      quand le complètement est tenté sur une ligne vide.
              nocaseglob
                      Si existante, bash fait correspondre les noms de fichiers
                      d'une façon insensible à la casse lors du développement
                      des chemins (consultez Développement des chemins
                      ci-dessus).
              nocasematch
                      Si existante, bash fait correspondre les motifs d'une
                      façon insensible à la casse lors de la mise en
                      correspondance pendant l'exécution des commandes
                      conditionnelles case ou [[.
              nullglob
                      Si existante, bash autorise les motifs ne correspondant à
                      aucun fichier (consultez Développement des chemins
                      ci-dessus) à se développer en une chaîne NULL plutôt qu'en
                      une valeur littérale.
              progcomp
                      Si existante, les outils de complètement programmables
                      (consultez Complètement programmable ci-dessus) sont
                      activés. Cette option est activée par défaut.
              promptvars
                      Si existante, les chaînes d'invite sont sujettes au
                      développement des paramètres, à la substitution de
                      commande, au développement arithmétique et à la
                      suppression des protections après avoir été développées
                      comme décrit ci-dessus dans INVITES.  Cette option est
                      activée par défaut.
              restricted_shell
                      L'interpréteur crée cette option s'il est démarré en mode
                      restreint (consultez INTERPRÉTEUR RESTREINT ci-dessous).
                      Cette valeur ne peut pas être changée. Elle n'est pas
                      réinitialisée lorsque les fichiers d’initialisation sont
                      exécutés, ce qui permet à ces fichiers de découvrir si un
                      interpréteur est restreint ou non.
              shift_verbose
                      Si existante, la commande interne shift affiche un message
                      d'erreur lorsque le nombre de décalages dépasse le nombre
                      de paramètres positionnels.
              sourcepath
                      Si existante, la commande interne source (.) utilise la
                      valeur de la variable PATH pour trouver le répertoire
                      contenant le fichier fourni en argument. Cette option est
                      activée par défaut.
              xpg_echo
                      Si existante, la commande interne echo développe par
                      défaut les suites de caractères de protection par
                      contre-oblique.

       suspend [-f]
              Suspendre l'exécution de l'interpréteur jusqu'à la réception d'un
              signal SIGCONT.  Un interpréteur de connexion ne peut pas être
              suspendu ; l'option -f permet de surpasser ce comportement et
              force sa suspension. L'état renvoyé est 0, sauf si l'interpréteur
              est un interpréteur de connexion et que l'option -f est absente,
              ou si le contrôle des tâches n'est pas activé.

       test expr
       [ expr ]
              Renvoyer un état de 0 (vrai) ou 1 (faux) suivant l'évaluation de
              la condition expr. Chaque opérateur et opérande doit être
              représenté par un argument distinct. Les conditions sont composées
              des primitives décrites ci-dessus dans CONDITIONS.  test n'accepte
              aucune option, n'accepte pas non plus et ignore l'argument -- pour
              signifier la fin des options.

              Les conditions peuvent être combinées avec les opérateurs suivant,
              décrits par ordre de priorité décroissante. L'évaluation dépend du
              nombre d'arguments, voir ci-dessous. La priorité des opérateurs
              est utilisée quand il y a au moins cinq arguments.
              ! expr Vrai si expr est fausse.
              ( expr )
                     Renvoie la valeur de expr. Peut servir à surpasser la
                     priorité normale des opérateurs.
              expr1 -a expr2
                     Vrai si expr1 et expr2 sont toutes deux vraies.
              expr1 -o expr2
                     Vrai si expr1 ou expr2 est vraie.

              test et [ évaluent les conditions en fonction d'un jeu de règles
              dépendant du nombre d'arguments.

              0 argument
                     La condition est fausse.
              1 argument
                     La condition est vraie si et seulement si l'argument n'est
                     pas NULL.
              2 arguments
                     Si le premier argument est !, la condition est vraie si et
                     seulement si le second argument est NULL. Si le premier
                     argument est l'un des opérateurs conditionnel unaires
                     décrits ci-dessus dans CONDITIONS la condition est vraie si
                     le test unaire est vrai. Si le premier argument n'est pas
                     un opérateur conditionnel unaire correct, la condition est
                     fausse.
              3 arguments
                     Les conditions suivantes sont appliquées dans l'ordre de la
                     liste. Si le second argument est l'un des opérateurs
                     conditionnels binaires décrits ci-dessus dans CONDITIONS,
                     le résultat de la condition est le résultat du test binaire
                     utilisant le premier et le troisième argument en tant
                     qu'opérandes. Les opérateurs -a et -o sont considérés comme
                     des opérateurs binaires quand ils sont avec trois
                     arguments. Si le premier argument est !, la valeur est la
                     négation du test binaire utilisant les deuxième et
                     troisième arguments. Si le premier argument est exactement
                     ( et le troisième argument est exactement ), le résultat
                     est le test unaire du second argument. Sinon la condition
                     est fausse.
              4 arguments
                     Si le premier argument est !, le résultat est la négation
                     de la condition à trois arguments composée des arguments
                     restants. Sinon la condition est analysée et évaluée selon
                     les règles de priorité décrites ci-dessus.
              5 arguments ou plus
                     La condition est analysée et évaluée selon les règles de
                     priorité décrites ci-dessus.

              Lorsqu'ils sont utilisés avec test ou [, les opérateurs < et >
              ordonnent d'un point de vue lexicographique en utilisant l'ordre
              ASCII.

       times  Afficher les durées cumulées utilisateur et système pour
              l'interpréteur et les processus lancés par cet interpréteur.
              L'état renvoyé est 0.

       trap [-lp] [[argument] signal ...]
              La commande argument doit être lue et exécutée quand
              l'interpréteur reçoit au moins un signal. Si argument est absent
              (et qu'un seul signal est fourni) ou -, chaque signal indiqué est
              réinitialisé à sa position d'origine (la valeur qu'il avait lors
              de l'entrée dans l'interpréteur). Si argument est la chaîne NULL,
              chaque signal indiqué est ignoré par l'interpréteur et par les
              commandes qu'il appelle. Si argument n'est pas présent et que -p
              est fourni, les commandes capturées associées à chaque signal sont
              affichées. Si aucun argument n'est fourni, ou si seul -p est
              donné, trap affiche la liste des commandes associées à chaque
              signal. L'option -l conduit l'interpréteur à afficher une liste
              des noms de signal et leur numéro correspondant. Chaque signal est
              soit un nom de signal défini dans <signal.h>, soit un numéro de
              signal. Les noms de signal sont insensibles à la casse et le
              préfixe SIG est optionnel.

              Si un signal est EXIT (0), la commande argument est exécutée lors
              de la sortie de l'interpréteur. Si un signal est DEBUG, la
              commande argument est exécutée avant toute commande simple,
              commande for, commande case, commande select, toute commande for
              arithmétique, et avant que la première commande n'exécute une
              fonction de l'interpréteur (consultez GRAMMAIRE DE L'INTERPRÉTEUR
              ci-dessus). Reportez-vous à la description de l'option extdebug de
              la commande interne shopt pour obtenir des renseignements sur les
              effets de la capture DEBUG. Si un signal est RETURN, la commande
              argument est exécutée à chaque fois qu'une fonction de
              l'interpréteur, ou un script exécuté avec les commandes internes .
              ou source, termine son exécution.

              Si un signal est ERR, la commande argument est exécutée chaque
              fois qu'une conduite (qui peut être réduite à une unique commande
              simple), une liste ou une commande composée renvoie un état final
              différent de zéro, sujet aux conditions suivantes. La capture ERR
              n'est pas exécutée si la commande échouant fait partie d'une liste
              de commandes suivant immédiatement un mot clef while ou until,
              d'un test if, d'une commande exécutée au sein d'une liste de && ou
              de || sauf la commande suivant le dernier && ou ||, n’importe
              quelle commande d’une conduite sauf la dernière, ou si la valeur
              renvoyée par la commande est inversée par !. Ce sont les mêmes
              conditions que celles observées par l'option errexit (-e).

              Les signaux ignorés en entrant dans l'interpréteur ne peuvent être
              capturés ou réinitialisés. Les signaux capturés qui ne sont pas
              ignorés sont réinitialisés à leur valeur d'origine dans un
              sous-interpréteur ou un environnement de sous-interpréteur quand
              il est créé. L'état renvoyé est faux si un signal n'est pas
              valable, sinon trap renvoie vrai.

       type [-aftpP] nom [nom ...]
              Sans option, indiquer la façon d’interpréter chaque nom s’il est
              utilisé en nom de commande. Si l'attribut -t est utilisé, type
              affiche une des chaînes alias, keyword, function, builtin ou file
              selon que le nom est un alias, un mot clef réservé de
              l'interpréteur, une fonction, une commande interne ou un fichier
              sur le disque. Si le nom n'est pas trouvé, rien n'est affiché et
              un état final à faux est renvoyé. Si l'option -p est utilisée,
              type renvoie le nom du fichier qui sera exécuté si l'on tape le
              nom en guise de commande ou rien si « type -t name » ne renvoyait
              pas file. L'option -P force une recherche dans PATH pour chaque
              nom, même si « type -t name » ne renvoyait pas file. Si une
              commande est disponible dans la table de hachage, -p et -P
              affichent la valeur de cette table, qui n'est pas nécessairement
              le fichier apparaissant en premier dans PATH.  Si l'option -a est
              appelée, type affiche tous les emplacements contenant un
              exécutable du nom indiqué. Cela inclut les alias et les fonctions,
              sauf si l'option -p est également présente. La table de hachage
              des commandes n'est pas consultée avec l'option -a. L'option -f
              supprime la fonction de l'interpréteur de consultation de table,
              comme avec la commande interne command. type renvoie vrai si tous
              les arguments sont trouvés et faux si aucun n'a été trouvé.

       ulimit [-HSTabcdefilmnpqrstuvx [limitation]]
              Fournir, sur les systèmes qui le permettent, un mécanisme de
              contrôle des ressources disponibles pour l'interpréteur et pour
              les processus qu'il lance. Les options -H et -S indiquent si la
              limitation est stricte (« hard ») ou flexible (« soft ») pour la
              ressource indiquée. Une limitation stricte ne peut pas être
              augmentée par un utilisateur non privilégié une fois qu'elle a été
              configurée ; une limitation flexible peut être augmentée jusqu'à
              la valeur de la limitation stricte correspondante. Si ni -H ni -S
              n'est indiqué, les limitations stricte et flexible sont toutes
              deux configurées. La valeur de la limitation peut être un nombre
              (utilisant les unités particulières de la ressource) ou l'une des
              valeurs spéciales hard, soft ou unlimited, qui signifient,
              respectivement, la limitation stricte actuelle, la limitation
              flexible actuelle et l'absence de limitation. Si la limitation est
              omise, la valeur actuelle de la limitation flexible pour la
              ressource est affichée, à moins que l'option -H soit indiquée.
              Quand plusieurs ressources sont indiquées, les noms des
              limitations et leurs unités sont affichés avant les valeurs. Les
              autres options sont interprétées comme suit :
              -a     Toutes les limitations actuelles sont signalées
              -b     La taille maximale du tampon de socket
              -c     La taille maximale des fichiers core créés
              -d     La taille maximale du segment de données d'un processus
              -e     La priorité maximale d’ordonnancement (« nice »)
              -f     La taille maximale d'un fichier écrit par l'interpréteur et
                     ses fils
              -i     Le nombre maximal de signaux en attente
              -l     La taille maximale qui peut être verrouillée en mémoire
              -m     La taille maximale de la partie résidente d'un processus
                     (« resident set size » ou RSS, la plupart des systèmes ne
                     respectent pas cette limite)
              -n     Le nombre maximal de descripteurs de fichiers ouverts (la
                     plupart des systèmes ne permettent pas de modifier cette
                     valeur)
              -p     La taille d'un tube en blocs de 512 octets (parfois
                     inexistante)
              -q     Le nombre maximal d'octets dans les files de messages POSIX
              -r     La priorité maximale d'ordonnancement temps-réel
              -s     La taille maximale de la pile
              -t     La durée maximale, en seconde, de temps processeur accordé
                     à un processus
              -u     Le nombre maximal de processus autorisés pour un seul
                     utilisateur
              -v     La quantité maximale de mémoire virtuelle disponible pour
                     l'interpréteur et, sur certains systèmes, pour ses fils
              -x     Le nombre maximal de verrous de fichiers
              -T     Le nombre maximal de processus légers (« threads »)

              Si une limitation est indiquée, et que l'option -a n’est pas
              donnée, limitation sera la nouvelle valeur pour la ressource
              indiquée. Si aucune option n'est indiquée alors -f est supposée.
              Les valeurs s'expriment par pas de 1024 octets, sauf pour -t qui
              est en seconde, -p qui utilise comme unité le bloc de 512 octets,
              ainsi que -T, -b, -n et -u, qui n'ont pas d'unité. L'état renvoyé
              est 0, sauf si une option ou un argument incorrect a été fourni ou
              si une erreur se produit en configurant la nouvelle limitation.

       umask [-p] [-S] [mode]
              Le masque de création de fichier de l'utilisateur est configuré à
              mode. Si mode commence par un chiffre, il est interprété comme un
              nombre octal, sinon il est considéré comme un masque symbolique,
              semblable à ceux acceptés par chmod(1). Si mode est omis ou si
              l'option -S est fournie, la valeur actuelle du masque est
              affichée. L'option -S conduit à l'affichage du masque sous forme
              symbolique, l'affichage par défaut étant en octal. Si l'option -p
              est fournie et si le mode est omis, la sortie a lieu dans un
              format réutilisable en entrée. L'état renvoyé est 0 si le mode a
              pu être changé correctement ou si aucun argument mode n'a été
              fourni, et faux sinon.

       unalias [-a] [nom ...]
              Supprimer le nom de la liste des alias définis. Si l'option -a est
              fournie, toutes les définitions d'alias sont supprimées. La valeur
              renvoyée est vrai, sauf si un nom fourni n'est pas un alias
              défini.

       unset [-fv] [-n] [name ...]
              Pour chaque nom indiqué, supprimer la variable ou la fonction
              correspondante. Si l'option -v est indiquée, chaque nom se
              rapporte à une variable de l'interpréteur, et cette variable est
              supprimée. Les variables en lecture seule ne peuvent pas être
              détruites. Si l'option -f est indiquée, chaque nom se rapporte à
              une fonction de l'interpréteur et la définition de la fonction est
              supprimée. Si l’option -n est fournie, et que nom est une variable
              avec l’attribut nameref, nom sera détruite plutôt que la variable
              qu’elle référence. -n n’a pas d’effet si l’option -f est fournie.
              Si aucune option n’est fournie, chaque nom fait référence à une
              variable ; si aucune variable de ce nom n’existe, toutes les
              fonctions de ce nom sont détruites. Toutes les variables et
              fonctions détruites sont supprimées de l'environnement transmis
              aux commandes ultérieures. Si l'une des variables COMP_WORDBREAKS,
              RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS ou DIRSTACK est
              détruite, elle perd ses propriétés spécifiques, même si elle est
              recréée ultérieurement. L'état final est vrai sauf si un des noms
              est en lecture seule.

       wait [-n] [n ...]
              Attendre que tous les processus fils indiqués s’exécutent et
              renvoient leur état final. Chaque n peut être un PID ou une
              spécification de tâche ; si une spécification de tâche est
              indiquée, la fin de tous les processus de la conduite de cette
              tâche sera attendue. Si n est omis, la fin de tous les processus
              fils actuellement actifs sera attendue et l'état renvoyé est zéro.
              Si l’option -n est fournie, wait attend que chaque tâche se
              termine et renvoie son état final. Si n indique un processus ou
              une tâche inexistants, l'état renvoyé est 127. Sinon, l'état
              renvoyé est l'état final du dernier processus, ou tâche, attendu.

INTERPRÉTEUR RESTREINT
       Si bash démarre sous le nom rbash ou si l'option -r est fournie lors de
       son appel, l'interpréteur devient restreint. Un interpréteur restreint
       permet de créer un environnement plus contrôlé qu'un interpréteur
       standard. Il se comporte de même façon que bash à la différence des
       actions suivantes qui sont interdites ou non effectuées :

       •      changer de répertoire avec cd ;

       •      créer ou détruire les valeurs de SHELL, PATH, ENV ou BASH_ENV ;

       •      indiquer des noms de commandes contenant un / ;

       •      indiquer un nom de fichier contenant un / comme argument de la
              commande interne . ;

       •      indiquer un nom de fichier contenant une barre oblique comme
              argument de l'option -p de la commande interne hash ;

       •      importer une définition de fonction dans l'environnement au
              démarrage ;

       •      analyser les valeurs de SHELLOPTS au démarrage ;

       •      rediriger la sortie en utilisant les opérateurs de redirection >,
              >|, <>, >&, &> et >> ;

       •      utiliser la commande interne exec pour remplacer l'interpréteur
              par une autre commande ;

       •      ajouter ou supprimer des commandes internes avec les options -f et
              -d de la commande interne enable ;

       •      utiliser la commande interne enable pour activer les commandes
              internes de l'interpréteur désactivées ;

       •      indiquer l'option -p à la commande interne commande ;

       •      supprimer le mode restreint avec set +r ou set +o restricted.

       Ces restrictions sont mises en place après la lecture de tous les
       fichiers d’initialisation.

       Quand une commande exécutée se trouve être un script shell (consultez
       EXÉCUTION DES COMMANDES ci-dessus), rbash supprime toute restriction dans
       l'interpréteur créé pour exécuter le script.

VOIR AUSSI
       Manuel de référence de Bash, Brian Fox et Chet Ramey
       The GNU Readline Library, Brian Fox et Chet Ramey
       The GNU History Library, Brian Fox et Chet Ramey
       Portable Operating System Interface (POSIX) Part 2: Shell and Utilities,
       IEEE –
              http://pubs.opengroup.org/onlinepubs/9699919799/
       http://tiswww.case.edu/~chet/bash/POSIX – une description du mode posix
       sh(1), ksh(1), csh(1)
       emacs(1), vi(1)
       readline(3)

FICHIERS
       /bin/bash
              L'exécutable bash
       /etc/profile
              Le fichier d'initialisation commun à tout le système, exécuté pour
              les interpréteurs de commandes de connexion
       /etc/bash.bashrc
              Le fichier d’initialisation commun à tout le système pour les
              interpréteurs interactifs
       /etc/bash.bash.logout
              Le fichier de nettoyage des interpréteurs de connexion commun à
              tout le système, exécuté lorsqu'un interpréteur de connexion
              termine
       ~/.bash_profile
              Le fichier d'initialisation personnel exécuté pour les
              interpréteurs de commandes de connexion
       ~/.bashrc
              Le fichier d’initialisation personnel pour les interpréteurs
              interactifs
       ~/.bash_logout
              Le fichier de nettoyage personnel des interpréteurs de commandes
              de connexion, exécuté lorsqu'un interpréteur de commandes de
              connexion termine
       ~/.inputrc
              Le fichier d'initialisation personnel de readline

AUTEURS
       Brian Fox, Free Software Foundation
       bfox@gnu.org

       Chet Ramey, Case Western Reserve University
       chet.ramey@case.edu

SIGNALEMENTS D'ANOMALIES
       Si vous trouvez une anomalie dans bash, vous devriez la signaler. Tout
       d'abord vous devez vous assurer qu'il s'agit réellement d'une anomalie et
       qu'elle apparaît bien dans la dernière version disponible de bash. La
       dernière version est toujours disponible à partir de
       ftp://ftp.gnu.org/pub/gnu/bash/.

       Une fois que vous avez déterminé qu'une anomalie existe effectivement,
       utilisez la commande bashbug pour envoyer un signalement d'anomalie. Si
       vous avez un correctif, vous êtes encouragé à l'envoyer en même temps !
       Les suggestions ou les signalements d'anomalies de nature
       « philosophique » peuvent être envoyés (en anglais) à bug-bash@gnu.org ou
       postés dans le groupe Usenet gnu.bash.bug.

       TOUS les signalements d'anomalie doivent contenir :

       Le numéro de version de bash
       Le matériel et le système d'exploitation utilisés
       Le compilateur utilisé pour compiler
       Une description (en anglais) de l'anomalie
       Un petit script ou une « recette » qui démontre l'anomalie

       bashbug insère automatiquement les trois premiers éléments de cette liste
       dans le formulaire qu'il fournit pour remplir un signalement d'anomalie.

       Les commentaires et signalement d'anomalies concernant la version
       originale de cette page de manuel (en anglais) doivent être transmis à
       chet.ramey@case.edu. Ceux concernant cette version française peuvent être
       envoyés à debian-l10n-french@lists.debian.org.

ANOMALIES
       Cet interpréteur de commandes est trop gros et trop lent.

       Il y a quelques différences subtiles de comportement entre bash et les
       versions traditionnelles de sh, principalement à cause des spécifications
       POSIX.

       L'utilisation des alias peut avoir des conséquences inattendues.

       Les commandes internes et les fonctions de l'interpréteur ne peuvent pas
       être suspendues/relancées.

       Les commandes composées et les suites de commandes de la forme
       « a ; b ; c » ne sont pas gérées élégamment lors d'une interruption de
       processus. En cas de suspension d'un processus, l'interpréteur exécute
       immédiatement la commande suivante. Il suffit de placer cette suite de
       commandes entre parenthèses pour la forcer à créer un sous-interpréteur,
       qui, lui, pourra être suspendu en bloc.

       Les variables de type tableau ne peuvent pas (encore) être exportées.

       Il ne peut exister qu'un seul coprocessus actif à la fois.

TRADUCTION
       Ce document est une traduction réalisée par Christophe Blaess et Thierry
       Vignaud en 1997, et mise à jour par Alain Portal <aportal AT univ-montp2
       DOT fr> en 2006.

       La version présente dans Debian a été entièrement retravaillée par
       Frédéric Lehobey <Frederic AT Lehobey DOT net> et est dorénavant
       maintenue par David Prévot david@tilapin.org et les membres de la liste
       debian-l10n-french@lists.debian.org.

       Veuillez signaler toute erreur de traduction par un rapport de bogue sur
       le paquet manpages-fr-extra.



GNU Bash 4.3                     2 février 2014                          BASH(1)