BASH(1) BASH(1)
bash - Interprteur de commandes GNU Bourne-Again SHell.
bash [options] [fichier]
Bash is Copyright (C) 1989-2005 by the Free Software Foundation, Inc.
Bash est un interprteur de commandes (shell) compatible sh qui excute
les commandes lues depuis l'entre standard ou depuis un fichier. Bash
inclut aussi des fonctionnalits utiles des interprteurs de commandes
Korn et C (ksh et csh).
Bash vise tre une implmentation conforme la partie relative aux
interprteurs de commandes et utilitaires des spcifications IEEE POSIX
(norme IEEE 1003.1). Bash peut tre configur pour tre conforme aux spci-
fications POSIX par dfaut.
En plus des options d'interprteur monocaractres documentes dans la
description de la commande interne set, bash accepte les options suiv-
antes lors de son appel :
-c chane Si l'option -c est prsente, les commandes sont lues depuis la
chane fournie. S'il y a des arguments aprs la chane, ils sont
affects aux paramtres positionnels, en commenant par $0.
-i Si l'option -i est prsente, l'interprteur est interactif.
-l Faire que bash se comporte comme s'il avait t appel comme
interprteur de commandes de connexion (voir APPEL plus bas).
-r Si l'option -r est prsente, l'interprteur devient restreint
(voir INTERPRTEUR RESTREINT plus bas).
-s Si l'option -s est prsente ou s'il ne reste plus d'argument
aprs le traitement des options, alors les commandes sont lues
depuis l'entre standard. Cette option permet d'affecter les
paramtres positionnels tout en appelant un interprteur inter-
actif.
-D Une liste de toutes les chanes entre guillemets doubles
prcdes de $ est affiche sur la sortie standard. Ce sont les
chanes qui sont sujettes une traduction quand le paramtre
linguistique rgional n'est ni C ni POSIX. Cela implique
l'option -n ; aucune commande ne sera excute.
[-+]O [option_shopt]
option_shopt est une des options de l'interprteur acceptes
par la commande interne shopt (voir plus bas COMMANDES
INTERNES DE L'INTERPRTEUR ). Si option_shopt est prsente, -O
cre cette option ; +O la dtruit. Si option_shopt n'est pas
fournie, les noms et valeurs des options de l'interprteur
acceptes par shopt sont affichs sur la sortie standard. Si
l'option d'appel est +O, la sortie est affiche dans un format
rutilisable en entre.
-- Deux caractres -- indiquent la fin des options et dsactivent
le traitement des arguments. Tous les arguments aprs le --
sont traits comme des noms de fichiers et paramtres. - est
quivalent --.
Bash reconnat galement plusieurs options multicaractres. Ces options
doivent, pour tre reconnues, apparatre sur la ligne de commande avant
les options monocaractres.
--debugger
Prend les dispositions pour que le paramtrage du traage soit
excut avant que l'interprteur dmarre. Enclenche le mode de
traage tendu (voir plus bas la description de l'option extdebug
de la commande interne shopt) et le traage des fonctions de
l'interprteur (voir plus bas la description de l'option -o func-
trace de la commande interne set).
--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
succs.
--init-file fichier
--rcfile fichier
Excuter les commandes contenues dans fichier plutt que celles du
fichier d'initialisation commun tout le systme /etc/bash.bashrc
et que le fichier d'initialisation personnel standard ~/.bashrc
si l'interprteur est interactif (voir APPEL plus bas).
--login
quivalent -l.
--noediting
Ne pas utiliser la bibliothque GNU readline pour lire les lignes
de commande, lorsque l'interprteur est interactif.
--noprofile
Ne lire ni le fichier de configuration gnrale /etc/profile ni
les fichiers d'initialisation personnels ~/.bash_profile,
~/.bash_login, ni ~/.profile. Par dfaut, bash lit ces fichiers
lorsqu'il est appel comme interprteur de commandes de connexion
(voir APPEL plus bas).
--norc Ne pas lire ni excuter le fichier de configuration commun tout
le systme /etc/bash.bashrc ni le fichier personnel d'initialisa-
tion ~/.bashrc lorsque l'interprteur est interactif. Cette
option est active par dfaut si l'interprteur est appel sous le
nom sh.
--posix
Aligner le comportement de bash sur le standard POSIX, en ce qui
concerne les options dont l'action par dfaut diffre de ce stan-
dard (mode posix).
--restricted
L'interprteur devient restreint (voir INTERPRTEUR RESTREINT plus
bas).
--verbose
quivalent -v.
--version
Affiche le numro de version de bash sur la sortie standard et
termine avec succs.
S'il reste des arguments sur la ligne de commande aprs traitement des
options et que ni l'option -c, ni l'option -s n'ont t fournies, le pre-
mier argument est suppos tre le nom du fichier dans lequel lire les
commandes d'interprteur. Si bash est appel de cette faon, le nom du
ficher est affect $0 et les arguments restants aux autres paramtres
positionnels. Bash lit et excute les commandes depuis ce fichier, puis
termine. L'tat final de bash est l'tat final de la dernire commande
excute dans le script. Si aucune commande n'a t excute, l'tat final est
0. Une tentative est d'abord faite de trouver le fichier dans le rper-
toire courant et, si aucun fichier n'est trouv, l'interprteur cherche
le script dans les rpertoires contenus dans PATH.
Un interprteur de commandes est dit de connexion (login shell) si le
premier caractre de son argument numro zro est un - ou s'il est appel
avec l'option --login.
Un interprteur est interactif s'il est appel sans argument autre que
des options et sans l'option -c, dont l'entre standard et sa sortie
d'erreur sont toutes deux connectes des terminaux (comme dtermin par
la fonction isatty(3)) ou s'il est appel avec l'option -i. PS1 est cre
et $- contient la lettre i si bash est interactif, ce qui permet un
script ou un fichier de dmarrage de tester cet tat.
Le paragraphe suivant dcrit comment bash excute ses fichiers d'initial-
isation. Si un quelconque de ces fichiers existe mais n'est pas acces-
sible en lecture, bash signale une erreur. Les tildes sont remplacs par
des noms de fichiers comme dcrit plus bas dans Dveloppement du tilde
dans le paragraphe DVELOPPEMENTS.
Lorsque bash est lanc comme interprteur de commandes de connexion
interactif ou comme interprteur non interactif avec l'option --login,
il lit et excute tout d'abord les commandes se trouvant dans le fichier
/etc/profile si ce fichier existe. Aprs lecture de ce fichier, il
recherche ~/.bash_profile, ~/.bash_login et ~/.profile, dans cet ordre,
puis lit et excute les commandes se trouvant dans le premier fichier
existant et accessible en lecture. L'option --noprofile peut tre
utilise l'appel de l'interprteur pour empcher ce comportement.
Lorsqu'un interprteur de commandes de connexion termine, bash lit et
excute les commandes du fichier ~/.bash_logout, s'il existe.
Quand un interprteur interactif dmarre sans tre un interprteur de com-
mandes de connexion, bash lit et excute les commandes se trouvant dans
/etc/bash.bashrc et ~/.bashrc s'ils existent. Ce comportement peut tre
empch l'aide de l'option --norc. L'option --rcfile fichier forcera
bash lire et excuter les commandes dans fichier plutt que dans
/etc/bash.bashrc et ~/.bashrc.
Quand bash est dmarr de faon non interactive, par exemple pour lancer
un script, il consulte la variable BASH_ENV dans l'environnement,
dveloppe son contenu si elle existe et considre cette valeur comme le
nom d'un fichier lire et excuter. Bash se comporte comme si la com-
mande suivante tait excute :
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
mais la valeur de la variable PATH n'est pas utilise pour rechercher le
fichier.
Si bash est appel sous le nom sh, il essaye d'imiter le comportement de
dmarrage des versions historiques de sh aussi fidlement que possible,
tout en restant conforme aux spcifications POSIX. Lorsqu'il est appel
comme interprteur de commandes de connexion interactif ou non interac-
tif avec l'option --login, il essaye d'abord de lire et excuter, dans
cet ordre, les commandes de /etc/profile puis de ~/.profile. L'option
--noprofile peut tre utilise pour empcher ce comportement. Quand il est
appel en tant qu'interprteur interactif sous le nom sh, bash consulte
la variable ENV, dveloppe sa valeur si elle est dfinie et utilise le
rsultat en tant que nom de fichier lire et excuter. Comme un interpr-
teur appel sous le nom sh n'essaye pas de lire et d'excuter des comman-
des d'un quelconque autre fichier de dmarrage, l'option --rcfile n'a
aucun effet. Un interprteur 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 aprs 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 le standard POSIX pour les fichiers de dmar-
rage. Dans ce mode, les interprteurs interactifs dveloppent la variable
ENV et les commandes sont lues et excutes partir du fichier dont le
nom est la valeur dveloppe. Aucun autre fichier d'initialisation n'est
lu.
Bash tente de dterminer s'il est excut par le dmon lanant les interpr-
teurs de commandes distants, gnralement rshd. Si bash conclut qu'il est
excut par rshd, il lit et excute les commandes de /etc/bash.bashrc et
~/.bashrc si ces fichiers existent et sont lisibles. Il n'a pas ce com-
portement lorsqu'il est appel sous le nom sh. L'option --norc peut tre
utilise pour empcher ce comportement et l'option --rcfile peut tre
utilise pour forcer la lecture d'un autre fichier, mais rshd n'appelle
gnralement pas l'interprteur avec ces options ni ne permet de les spci-
fier.
Si l'interprteur est lanc avec un identifiant (de groupe) d'utilisateur
effectif diffrent de l'identifiant (de groupe) d'utilisateur rel et si
l'option -p n'est pas fournie, aucun fichier d'initialisation n'est lu,
les fonctions de l'interprteur ne sont pas importes depuis l'environ-
nement, la variable SHELLOPTS, si prsente dans l'environnement, est
ignore et l'identifiant de l'utilisateur effectif est mis celui de
l'utilisateur rel. Si l'option -p est fournie l'appel, le comportement
au dmarrage est le mme mais l'identifiant d'utilisateur effectif n'est
pas modifi.
Les dfinitions suivantes sont utilises dans toute la suite ce document.
blanc Une espace ou une tabulation.
mot Une suite de caractres considre comme une unit lmentaire par
l'interprteur. On parle galement de lexme (token).
nom Un mot ne contenant que des caractres alphanumriques ou le
soulignement (underscore), commenant par une lettre ou un
soulignement. On s'y rfre galement sous le terme identificateur.
mtacaractre
Un caractre qui, non protg, spare les mots. Un de ceux-ci :
| & ; ( ) < > space tab
oprateur de contrle
Un lexme ayant une fonction de contrle. C'est l'un des symboles
suivants :
|| & && ; ;; ( ) | <newline>
Les mots rservs sont des mots qui ont une signification spciale pour
l'interprteur. Les mots suivants sont reconnus comme rservs lorsqu'ils
ne sont pas protgs et sont soit le premier mot d'une commande simple
(voir plus bas GRAMMAIRE DE L'INTERPRTEUR ) soit le troisime mot d'une
commande case ou for :
! case do done elif else esac fi for function if in select then until
while { } time [[ ]]
Commandes simples
Une commande simple est une suite d'affectations facultatives de vari-
ables, suivie de mots spars par des blancs et de redirections, et ter-
mine par un oprateur de contrle. Le premier mot spcifie la commande
excuter et est pass comme argument zro. Les mots restants sont transmis
comme arguments la commande appele.
La valeur renvoye par une commande simple est son tat final ou 128+n si
la commande a t termine par le signal n.
Conduites
Une conduite (pipeline) est une suite d'une ou plusieurs commandes
spares par le caractre tube |. Le format d'une conduite est :
[time [-p]] [ ! ] commande_1 [ | commande_2 ... ]
La sortie standard de la commande_1 est connecte par un tube l'entre
standard de la commande_2. Cette connexion est effectue avant toute
redirection spcifie par la commande elle-mme (voir REDIRECTIONS plus
bas).
L'tat renvoy par une conduite est l'tat final de la dernire commande,
moins que l'option pipefail soit active. Si pipefail est active, l'tat
renvoy par la conduite est la valeur de la dernire commande (la plus
droite) terminer avec un tat diffrent de zro ou zro si toutes les com-
mandes se terminent avec succs. Si le mot rserv ! prcde une conduite,
l'tat final de cette conduite sera la ngation logique de l'tat final
tel que dcrit plus haut. L'interprteur attend que toutes les commandes
de la conduite soient termines avant de renvoyer une valeur.
Si le mot rserv time prcde une conduite, les temps passs par le pro-
gramme en modes utilisateur et systme sont indiqus quand la conduite se
termine. L'option -p modifie le format de sortie pour celui spcifi par
POSIX. La variable TIMEFORMAT peut contenir une chane de format indi-
quant comment les informations de chronomtrage doivent tre affiches ;
consultez plus bas la descriptions de TIMEFORMAT dans Variables de
l'interprteur.
Chaque commande dans une conduite est excute comme un processus indpen-
dant (c'est--dire dans un sous-interprteur).
Listes
Une liste est une suite d'une ou plusieurs conduites spares par l'un
des oprateurs ;, &, && ou || et facultativement termine par l'un au
choix des ;, & ou <saut de ligne>.
Dans cette liste d'oprateurs, && et || ont une priorit identique,
suivis par ; et &, qui ont galement une priorit identique.
Une suite d'un ou plusieurs sauts de ligne peut apparatre dans une
liste
la place d'un point-virgule pour dlimiter les commandes.
Si une commande se termine par l'oprateur de contrle &, l'interprteur
l'excute en arrire-plan, dans un sous-interprteur. L'interprteur
n'attend pas que la commande se termine et l'tat renvoy est 0. Les com-
mandes spares par un ; sont excutes successivement, l'interprteur
attend que chaque commande se termine tour tour. L'tat renvoy est
l'tat final de la dernire commande excute.
Les oprateurs de contrle && et || indiquent respectivement des listes
de ET et des listes de OU. Une liste ET est de la forme
commande_1 && commande_2
commande_2 est excute si, et seulement si, commande_1 renvoie un tat
final de zro.
Une liste OU a la forme
commande_1 || commande_2
commande_2 est excute si et seulement si commande_1 renvoie un tat
final diffrent de zro. L'tat renvoy par des listes de ET et de OU est
l'tat final de la dernire commande excute dans la liste.
Commandes composes
Une commande compose est l'une des constructions suivantes :
(liste)
liste est excute dans un sous-interprteur (voir plus bas ENVI-
RONNEMENT D'EXCUTION DES COMMANDES ). Les affectations de vari-
ables et les commandes internes qui affectent l'environnement de
l'interprteur n'ont pas d'effet une fois que la commande se ter-
mine. L'tat renvoy est l'tat final de la liste.
{ liste; }
liste est simplement excute avec l'environnement de l'interpr-
teur en cours. liste doit se terminer par un caractre de saut de
ligne ou un point-virgule. Cette construction est connue sous le
nom de commandes groupes. L'tat renvoy est l'tat final de la
liste. Remarquez que contrairement aux mtacaractres ( et ), { et
} sont des mots rservs qui ne doivent apparatre que l o un mot
rserv peut tre reconnu. Puisqu'ils ne conduiront pas un dcoupage
en mots, ils doivent tre spars de la liste par une espace.
((expression))
L'expression est value selon les rgles dcrites plus bas dans
VALUATION ARITHMTIQUE. Si la valeur arithmtique de l'expression
est diffrente de zro, l'tat renvoy est 0 ; sinon l'tat renvoy
est 1. Ceci est exactement quivalent let "expression".
[[ expression ]]
Renvoie un tat de 0 ou 1 selon l'valuation de la condition
expression. Les conditions sont composes de primitives dcrites
plus bas dans CONDITIONS. Le dcoupage en mots et le dveloppe-
ment des chemins ne sont pas effectus sur les mots entre [[ et
]] ; le dveloppement des tildes, des paramtres, des variables,
le dveloppement arithmtique, la substitution de commande et de
processus, ainsi que la suppression des protections sont effec-
tus. Les oprateurs conditionnels comme -f ne doivent pas tre
protgs afin d'tre reconnus comme primitives.
Quand les oprateurs == et != sont utiliss, la chane place
droite de l'oprateur est considre comme tant un motif dont la
correspondance est recherche selon les rgles dcrites plus bas
dans Motifs gnriques. Si l'option d'interprteur nocasematch est
active, la mise en correspondance est effectue sans tenir compte
de la casse (diffrence majuscule/minuscule) des caractres
alphabtiques. La valeur renvoye est 0 si les chanes correspon-
dent (==) (ou respectivement ne correspondent pas (!=) au motif
et 1 sinon. Toute partie du motif peut tre protge pour la forcer
correspondre en tant que chane.
Un oprateur binaire supplmentaire, =~, est disponible, avec la
mme priorit que == et !=. Lorsqu'il est utilis, la chane droite
de l'oprateur est considre comme une expression rationnelle ten-
due et est mise en correspondance en consquence (comme avec
regex(3)). La valeur renvoye est 0 si la chane correspond au
motif et 1 si elle ne correspond pas. Si l'expression
rationnelle n'est pas syntaxiquement correcte, la valeur renvoye
de l'expression conditionnelle est 2. Si l'option d'interprteur
nocasematch est active, la mise en correspondance est effectue
sans tenir compte de la casse. Les sous-chanes mises en corre-
spondance avec des sous-expressions entre parenthses dans
l'expression rationnelle sont sauvegardes dans la variable
tableau BASH_REMATCH. L'lment d'indice 0 de BASH_REMATCH est la
partie de la chane correspondant l'expression rationnelle com-
plte. L'lment d'indice n de BASH_REMATCH est la partie de la
chane correspondant la nme sous-expression entre parenthses.
Les expressions peuvent tre combines en utilisant les oprateurs
suivants, dcrits par ordre de priorit dcroissante :
( expression )
Renvoie la valeur de l'expression. Cela peut tre utilis
pour surpasser la priorit normale des oprateurs.
! 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 oprateurs && et || n'valuent pas expression2 si la valeur de
expression1 suffit dterminer la valeur renvoye par la condition
tout entire.
for nom [ in mot ] ; do liste ; done
La liste de mots suivant in est dveloppe, produisant une liste
d'lments. La variable nom prend tour tour la valeur de chacun
des lments et liste est excute chaque fois. Si in mot est omis,
la commande for excute la liste une fois pour chacun des
paramtres positionnels existants (voir PARAMTRES plus bas).
L'tat renvoy est l'tat final de la dernire commande excute. Si
le dveloppement des lments suivant in conduit une liste vide,
aucune commande n'est excute et l'tat renvoy est 0.
for (( expr1 ; expr2 ; expr3 )) ; do liste ; done
L'expression arithmtique expr1 est d'abord value selon les rgles
dcrites plus bas sous VALUATION ARITHMTIQUE. L'expression
arithmtique expr2 est ensuite value rptitivement jusqu' valoir
zro. Chaque fois que expr2 est value en une valeur diffrente de
zro, liste est excute et l'expression arithmtique expr3 est
value. Si une quelconque des expressions est omise, elle est
considre comme s'valuant 1. La valeur renvoye est l'tat final
de la dernire commande dans liste qui est excute ou faux si une
quelconque des expressions est incorrecte.
select nom [ in mot ] ; do liste ; done
La liste de mots la suite de in est dveloppe, produisant une
liste d'lments. L'ensemble des mots dvelopps est imprim sur la
sortie d'erreur standard, chacun prcd par un nombre. Si in mot
est omis, les paramtres positionnels sont imprims (voir
PARAMTRES plus bas). L'invite PS3 est affiche et une ligne est
lue depuis l'entre standard. Si la ligne est constitue d'un nom-
bre correspondant l'un des mots affichs, alors ce mot est
affect la valeur de la variable nom. Si la ligne est vide, les
mots et l'invite sont affichs nouveau. Si une fin de fichier
(EOF) est lue, la commande se termine. Toute autre valeur lue
conduit mettre vide la variable nom. La ligne lue est conserve
dans la variable REPLY. La liste est excute aprs chaque slec-
tion, jusqu' ce qu'une commande break soit atteinte. L'tat final
de select est l'tat final de la dernire commande excute dans la
liste ou zro si aucune commande n'a t excute.
case mot in [ [(] motif [ | motif ] ... ) liste ;; ] ... esac
Une commande case commence d'abord par dvelopper le mot, puis
essaye de le mettre en correspondance tour tour avec chacun des
motifs en utilisant les mmes rgles que pour le dveloppement des
chemins (voir plus bas Dveloppement des chemins). Le mot est
dvelopp en utilisant le dveloppement du tilde, le dveloppement
des paramtres et des variables, la substitution arithmtique, la
substitution de commande, la substitution de processus et la
suppression des protections. Chaque motif examin est dvelopp en
utilisant le dveloppement du tilde, le dveloppement des
paramtres et des variables, la substitution arithmtique, la sub-
stitution de commande et la substitution de processus. Si
l'option d'interprteur nocasematch est active, la mise en corre-
spondance est effectue sans tenir compte de la casse des carac-
tres alphabtiques. Quand une correspondance est trouve, la liste
associe est excute. Ds qu'un motif correct a t trouv, il n'y a
plus d'autre essai. L'tat final est zro si aucun motif ne corre-
spond. Sinon il est l'tat final de la dernire commande excute
dans la liste.
if liste; then liste; [ elif liste; then liste; ] ... [ else liste; ]
fi
La liste du if est excute. Si son tat final est zro, la liste du
then est excute. Sinon, chacune des listes des elif est excute
tour tour et si son tat final est zro, la liste du then associ
est excute et la commande termine. Sinon, la liste du else, si
prsente, est excute. L'tat final est l'tat final de la dernire
commande excute ou zro si aucune condition n'a t satisfaite.
while liste; do liste; done
until liste; do liste; done
La commande while rpte la liste du do tant que la dernire com-
mande de la liste du while renvoie un tat final de zro. La com-
mande until est identique la commande while, sauf que le test
est invers ; la liste du do est excute tant que la dernire com-
mande de la liste renvoie un tat final diffrent de zro. L'tat
final des commandes while et until est l'tat final de la dernire
commande excute dans la liste du do ou zro si aucune commande
n'a t excute.
Dfinitions des fonctions de l'interprteur
Une fonction de l'interprteur est un objet qui est appel comme une com-
mande simple et qui excute une commande compose avec un nouveau jeu de
paramtres positionnels. Les fonctions de l'interprteur sont dclares de
la faon suivante :
[ function ] nom () commande-compose [redirection]
Ceci dfinit une fonction possdant le nom mentionn. Le mot rserv
function est facultatif. S'il est fourni, les parenthses sont
facultatives. Le corps de la fonction est la commande compose
commande-compose (voir Commandes composes plus haut). Cette com-
mande est gnralement une liste de commandes entre { et }, mais
peut tre une quelconque des commandes dcrites dans Commandes
composes plus haut. La commande-compose est excute chaque fois
que nom est spcifi comme le nom d'une commande normale. Toutes
redirections (voir REDIRECTIONS plus bas) spcifies lorsqu'une
fonction est dfinie sont effectues lorsque la fonction est
excute. L'tat final d'une dfinition de fonction est zro, moins
qu'une erreur de syntaxe se produise ou qu'une fonction en lec-
ture seule existe dj avec le mme nom. Lorsque la fonction est
excute, l'tat final est celui de la dernire commande excute dans
le corps de la fonction. (Voir FONCTIONS plus bas.)
Dans un interprteur non interactif ou dans un interprteur interactif
avec l'option interactive_comments active par la commande interne shopt
(voir plus bas COMMANDES INTERNES DE L'INTERPRTEUR ), un mot commenant
par # conduira ignorer ce mot et tous les caractres restants sur la
ligne. Un interprteur interactif sans l'option interactive_comments
n'autorise pas les commentaires. L'option interactive_comments est
active par dfaut dans les interprteurs interactifs.
Les protections (quoting) permettent de forcer l'interprteur ignorer
la signification spciale de certains caractres ou mots. Les protections
peuvent tre utilises pour dsactiver le traitement des caractres spci-
aux, viter la reconnaissance des mots rservs ou empcher le dveloppement
des paramtres.
Tous les mtacaractres dcrits plus haut dans DFINITIONS ont des signifi-
cations spciales pour l'interprteur et doivent tre protgs pour ne
reprsenter que leur propre caractre.
Lorsque les outils de dveloppement de l'historique des commandes sont
utiliss (voir plus bas DVELOPPEMENT DE L'HISTORIQUE ), le caractre de
dveloppement de l'historique, gnralement !, doit tre protg pour viter
le dveloppement de l'historique.
Il y a trois mcanismes de protection : le caractre d'chappement, les
guillemets simples ( single quote ) et les guillemets doubles ( double
quote ).
Un caractre contre-oblique (\) non protg, est le caractre d'chappement.
Il prserve la valeur littrale du caractre qui le suit, l'exception du
<saut de ligne>. Si un couple \<saut de ligne> apparat et si la con-
tre-oblique n'est pas elle-mme protge, l'ensemble \<saut de ligne> est
considr comme une continuation de ligne (c'est--dire qu'il est supprim
du flot d'entre et ignor en pratique).
Encadrer des caractres entre des guillemets simples prserve la valeur
littrale de chacun des caractres entre guillemets simples. Un guille-
ment simple ne peut pas tre plac entre deux guillemets simples, mme
s'il est prcd d'une contre-oblique.
Encadrer des caractres entre des guillemets doubles prserve la valeur
littrale de chacun des caractres sauf $, `, \ et, lorsque le dveloppe-
ment de l'historique est activ, !. Les caractres $ et ` conservent
leurs significations spciales entre guillemets doubles. La
contre-oblique ne conserve sa signification spciale que lorsqu'elle est
suivie par l'un des caractres suivants : $, `, ", \ ou <saut de ligne>.
Un guillemet double peut tre protg entre deux guillemets doubles en le
faisant prcder d'une contre-oblique. S'il est activ, le dveloppement de
l'historique sera effectu, moins qu'un ! apparaissant entre
guillemets doubles ne soit protg par une contre-oblique. La con-
tre-oblique prcdant le ! n'est pas supprime.
Les caractres spciaux * et @ ont des significations spciales lorsqu'ils
se trouvent entre des guillemets doubles (voir PARAMTRES plus bas).
Les mots de la forme $'chane' sont traits spcialement. Le mot est
dvelopp en chane avec les caractres protgs par contre-oblique remplacs
comme spcifi par le standard ANSI C. Les suites d'chappement par con-
tre-oblique, si prsentes, sont dcodes comme suit :
\a alerte (alarme)
\b effacement arrire (backspace)
\e caractre d'chappement
\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
\nnn le caractre 8 bits dont la valeur octale est nnn (de un
trois chiffres)
\xHH le caractre 8 bits dont la valeur hexadcimale est HH (un
deux symboles hexadcimaux)
\cx un caractre contrle-x
Le rsultat dvelopp est protg par des guillemets simples comme si le
symbole dollar n'avait pas t prsent.
Une chane entre guillemets doubles prcde d'un symbole dollar ($) con-
duira la traduction de la chane selon le paramtre linguistique rgional
en vigueur. Si le paramtre linguistique rgional courant est C ou POSIX,
le symbole dollar est ignor. Si la chane est traduite et remplace, le
rsultat est protg par des guillemets doubles.
Un paramtre est une entit permettant de stocker des valeurs. Il peut
tre un nom, un nombre ou un des caractres spciaux dcrits plus bas, dans
Paramtres spciaux. Une variable est un paramtre not par un nom. Une
variable possde une valeur et zro ou plusieurs attributs. Les attributs
sont affects en utilisant la commande interne declare (voir declare
plus bas dans COMMANDES INTERNES DE L'INTERPRTEUR ).
Un paramtre est cr si une valeur lui a t affecte. La chane vide est une
valeur correcte. Une fois qu'une variable est cre, elle ne peut tre
dtruite qu'en utilisant la commande interne unset (voir plus bas COM-
MANDES INTERNES DE L'INTERPRTEUR ).
Une variable peut recevoir une valeur par une affectation de la forme
nom=[valeur]
Si aucune valeur n'est indique, une chane vide est affecte la vari-
able. Toutes les valeurs sont sujettes au dveloppement du tilde, des
paramtres et des variables, la substitution de commande, au dveloppe-
ment arithmtique et la suppression des protections (voir DVELOPPEMENTS
plus bas). Si une variable a son attribut integer de mis, alors la
valeur est soumise l'valuation arithmtique, mme si la syntaxe $((...))
n'est pas utilise (voir Dveloppement arithmtique plus bas). Le dcoupage
en mots n'est pas effectu, l'exception de "$@" comme expliqu plus bas
dans Paramtres spciaux. Le dveloppement des chemins n'est pas effectu.
Les affectations peuvent galement apparatre comme argument des comman-
des internes suivantes : alias, declare, typeset, export, readonly et
local.
Dans le contexte o une affectation affecte une valeur une variable de
l'interprteur ou un indice de tableau, l'oprateur += peut tre utilis
pour ajouter ou additionner la prcdente valeur de la variable. Lorsque
l'oprateur += est appliqu une variable dont l'attribut integer
(entier) a t mis, la valeur est value comme une expression arithmtique
et additionne la valeur actuelle de la variable qui est galement
value. Lorsque += est appliqu une variable tableau en utilisant
l'affectation compose (voir Tableaux plus bas), la valeur de la vari-
able n'est pas dtruite (comme elle l'est lorsqu'on utilise =) et les
nouvelles valeurs sont ajoutes au tableau, en commenant l'indice maxi-
mum du tableau plus un. Lorsque l'oprateur est appliqu une variable de
type chane, la valeur est dveloppe et concatne la valeur de la vari-
able.
Paramtres positionnels
Un paramtre positionnel est un paramtre not par un ou plusieurs
chiffres ( l'exception du chiffre 0 seul). Les paramtres positionnels
sont affects avec les arguments de l'interprteur lors de son appel. Ils
peuvent tre raffects avec la commande interne set. On ne peut pas
utiliser les affectations pour les paramtres positionnels. Ils sont
temporairement remplacs lors de l'excution d'une fonction de l'interpr-
teur (voir FONCTIONS plus bas).
Un paramtre positionnel constitu de plusieurs chiffres doit tre encadr
par des accolades lors de son dveloppement (voir DVELOPPEMENTS plus
bas).
Paramtres spciaux
L'interprteur traite plusieurs paramtres spcifiquement. Ces paramtres
peuvent uniquement tre consults, il n'est pas permis de leur affecter
une valeur.
* Se dveloppe en l'ensemble des paramtres positionnels, commenant
par le premier. Quand le dveloppement se produit entre des
guillemets doubles, * se transforme en un seul mot constitu de
la valeur de tous les paramtres positionnels spars par le pre-
mier caractre de la variable spciale IFS. C'est--dire que "$*"
est quivalent "$1c$2c...", o c est le premier caractre de la
valeur de la variable IFS. Si IFS est inexistante, les
paramtres sont spars par des espaces. Si IFS est vide, les
paramtres sont accols sans sparateurs.
@ Se dveloppe en l'ensemble des paramtres positionnels, commenant
par le premier. Quand le dveloppement a lieu entre guillemets
doubles, chaque paramtre se dveloppe en un mot distinct.
C'est--dire que "$@" est quivalent "$1" "$2" .... Si le
dveloppement des guillemets doubles survient dans un mot, le
dveloppement du premier paramtre est accol la premire partie du
mot d'origine et le dveloppement du dernier paramtre est accol
la dernire partie du mot d'origine. Quand il n'y a pas de
paramtres positionnels, "$@" et $@ ne se dveloppent en rien
(c'est--dire qu'ils sont simplement limins).
# Correspond au nombre de paramtres positionnels, en base dcimale.
? Se dveloppe en l'tat de la dernire conduite excute au premier
plan.
- Est remplac par la liste des options de l'interprteur indiques
durant l'appel, configures avec la commande interne set ou
celles cres par l'interprteur lui-mme (comme avec l'option -i).
$ Se transforme en PID de l'interprteur. Dans un sous-interprteur
(), il se transforme en PID de l'interprteur et non pas du
sous-interprteur.
! Se transforme en PID de la commande (asynchrone) excute en
arrire-plan le plus rcemment.
0 Se dveloppe en le nom de l'interprteur ou du script. Ce paramtre
est cr lors de l'initialisation de l'interprteur. 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, aprs la chane de commandes
excuter. Sinon, ce paramtre contient le nom de fichier utilis
pour appeler bash, comme indiqu par l'argument zro.
_ Au lancement de l'interprteur, contient le chemin d'accs absolu
utilis pour appeler l'interprteur ou le script en cours
d'excution tel qu'il est pass dans l'environnement ou dans la
liste des arguments. Devient le dernier argument de la commande
prcdente, aprs dveloppement. Mis aussi au chemin d'accs complet
de chaque commande excute et se retrouve dans l'environnement
export cette commande. Lors de la vrification de l'arrive de
courriel, contient le nom du fichier de courriel en cours de
consultation.
Variables de l'interprteur
Les variables suivantes sont cres par l'interprteur :
BASH Se dveloppe en chemin d'accs complet l'instance courante de
bash.
BASH_ARGC
Une variable de type tableau dont les valeurs sont le nombre de
paramtres de chaque trame de la pile d'appel d'excution de
l'interprteur courant. Le nombre de paramtres du sous-programme
courant (fonction de l'interprteur ou script excut par . ou
source) est au sommet de la pile. Lorsqu'un sous-programme est
excut, le nombre de paramtres passs est plac dans BASH_ARGC.
L'interprteur cre BASH_ARGC seulement dans le mode de traage
tendu (voir plus bas la description de l'option extdebug de la
commande interne shopt).
BASH_ARGV
Une variable de type tableau contenant tous les paramtres de la
pile d'appel d'excution de l'interprteur courant. Le dernier
paramtre du dernier sous-programme est au sommet de la pile ; le
premier paramtre de l'appel initial est en bas. Lorsqu'un
sous-programme est excut, les paramtres fournis sont placs dans
BASH_ARGV. L'interprteur cre BASH_ARGV seulement dans le mode de
traage tendu (voir plus bas la description de l'option extdebug
de la commande interne shopt).
BASH_COMMAND
La commande en cours d'excution ou sur le point d'tre excute,
moins que l'interprteur n'excute une commande la suite d'une
capture, auquel cas c'est la commande s'excutant 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 lments sont les numros de
ligne des fichiers sources correspondant chacun des lments de
FUNCNAME. ${BASH_LINENO[$i]} est le numro de la ligne dans le
fichier source o ${FUNCNAME[$ifP]} a t appel. Le nom du fichier
source correspondant est ${BASH_SOURCE[$i]}. Utilisez LINENO
pour obtenir le numro de ligne courant.
BASH_REMATCH
Une variable de type tableau dont les lments sont affects avec
l'oprateur binaire =~ dans la commande conditionnelle [[.
L'lment d'indice 0 est la partie de la chane correspondant
l'expression rationnelle complte. L'lment d'indice n est la par-
tie de la chane correspondant la n-ime sous-expression entre
parenthses. Cette variable est en lecture seule.
BASH_SOURCE
Une variable de type tableau dont les lments sont les noms des
fichiers source correspondants aux lments de la variable tableau
FUNCNAME.
BASH_SUBSHELL
Incrment chaque fois qu'un sous-interprteur ou qu'un environ-
nement de sous-interprteur est engendr. La valeur initiale est
0.
BASH_VERSINFO
Une variable de type tableau protge en criture dont les lments
reprsentent la version de cette instance de bash. Cette valeur
est affecte aux lments du tableau comme suit :
BASH_VERSINFO[0] Le numro majeur de la version (release).
BASH_VERSINFO[1] Le numro mineur de la version (version).
BASH_VERSINFO[2] Le niveau de correctif.
BASH_VERSINFO[3] Le numro de compilation.
BASH_VERSINFO[4] Le statut de cette version (p. ex.,
beta1).
BASH_VERSINFO[5] La valeur de MACHTYPE.
BASH_VERSION
Se dveloppe en une chane dcrivant le numro de version de cette
instance de bash.
COMP_CWORD
Un indice dans ${COMP_WORDS} du mot contenant la position
courant du curseur. Cette variable n'est disponible que dans les
fonctions de l'interprteur appeles par les outils de compltement
programmables (voir Compltement programmable plus bas).
COMP_LINE
La ligne de commande courante. Cette variable n'est disponible
que dans les fonctions de l'interprteur appeles par les outils
de compltement programmables (voir Compltement programmable plus
bas).
COMP_POINT
L'indice de la position courante du curseur relatif au dbut de
la commande courante. Si la position courante du curseur est la
fin de la commande courante, la valeur de cette variable est
gale ${#COMP_LINE}. Cette variable n'est disponible que dans
les fonctions de l'interprteur et les commandes externes appeles
par les outils de compltement programmables (voir Compltement
programmable plus bas).
COMP_WORDBREAKS
Le jeu de caractres que la bibliothque readline considre comme
sparateurs de mots lors du compltement de mots. Si COMP_WORD-
BREAKS est dtruite, elle perd ses proprits spciales, mme si elle
est recre par la suite.
COMP_WORDS
Une variable de type tableau (voir Tableaux plus bas) consistant
en des mots individuels de la ligne de commande courante. Les
mots sont dcoups au niveau des mtacaractres de l'interprteur de
commandes comme l'analyseur de l'interprteur de commandes le
ferait. Cette variable n'est disponible que dans les fonctions
de l'interprteur appeles par les outils de compltement pro-
grammables (voir Compltement programmable plus bas).
DIRSTACK
Une variable de type tableau (voir Tableaux plus bas) reprsen-
tant le contenu courant de la pile de rpertoires. Les rpertoires
apparaissent dans la pile dans l'ordre dans lequel la commande
interne dirs les affiche. Les affectations des lments de cette
variable tableau peuvent tre utiliss pour modifier les rper-
toires dj dans la pile, mais les commandes internes pushd et
popd doivent tre utilises pour ajouter et enlever des rper-
toires. L'affectation de cette variable ne modifiera pas le
rpertoire courant. Si DIRSTACK est dtruite, elle perd ses pro-
prits spciales, mme si elle est recre par la suite.
EUID Contient l'UID effectif de l'utilisateur, initialis au dmarrage
de l'interprteur. Cette variable est en lecture seule.
FUNCNAME
Une variable de type tableau contenant le nom de toutes les
fonctions de l'interprteur actuellement dans la pile d'appel
d'excution. L'lment d'indice 0 est le nom d'une quelconque des
fonctions de l'interprteur en cours d'excution. L'lment le plus
bas est main . Cette variable n'existe que si une fonction de
l'interprteur est en cours d'excution. Les affectations de FUNC-
NAME n'ont aucun effet et renvoient un tat d'erreur. Si FUNCNAME
est dtruite, elle perd ses proprits spciales, mme si elle est
recre par la suite.
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 dtruite, elle
perd ses proprits spciales, mme si elle est recre par la suite.
HISTCMD
Le numro d'historique ou l'indice dans la file d'historique, de
la commande en cours. Si HISTCMD est dtruite, elle perd ses pro-
prits spciales, mme si elle est recre par la suite.
HOSTNAME
Automatiquement mis au nom de la machine courante.
HOSTTYPE
Automatiquement mis une chane qui dcrit de faon unique le type
de machine sur laquelle bash s'excute. La valeur par dfaut dpend
du systme.
LINENO Chaque fois que ce paramtre est consult, l'interprteur le rem-
place par un nombre dcimal reprsentant le numro de la ligne
actuelle (commenant 1), au sein du script ou de la fonction.
Hors d'un script ou d'une fonction, la valeur n'a pas ncessaire-
ment de sens. Si LINENO est dtruite, elle perd ses proprits
spciales, mme si elle est recre par la suite.
MACHTYPE
Automatiquement mis une chane dcrivant le type du systme sur
lequel bash s'excute, dans le format standard de GNU pro-
cesseur-compagnie-systme. La valeur par dfaut dpend du systme.
OLDPWD Le rpertoire de travail prcdent comme mis par la commande cd.
OPTARG La valeur du dernier argument d'option trait par la commande
interne getopts (voir plus bas COMMANDES INTERNES DE L'INTERPR-
TEUR ).
OPTIND L'indice du prochain argument traiter par la commande interne
getopts (voir plus bas COMMANDES INTERNES DE L'INTERPRTEUR ).
OSTYPE Automatiquement mis une chane qui dcrit le systme d'exploita-
tion sur lequel bash s'excute. La valeur par dfaut dpend du
systme.
PIPESTATUS
Une variable de type tableau (voir Tableaux plus bas) contenant
une liste des tats finaux des processus excuts dans la conduite
excute la plus rcemment au premier plan (qui peut ventuellement
contenir une seule commande).
PPID L'identifiant du processus parent de l'interprteur. Cette vari-
able est en lecture seule.
PWD Le rpertoire de travail courant comme mis par la commande cd.
RANDOM chaque fois que ce paramtre est consult, un entier alatoire
entre 0 et 32767 est engendr. Cette suite de nombres alatoires
peut tre initialise en affectant une valeur RANDOM. Si RANDOM
est dtruite, elle perd ses proprits spciales, mme si elle est
recre par la suite.
REPLY Mis la ligne de saisie lue par la commande interne read
lorsqu'aucun argument n'a t fourni.
SECONDS
chaque fois que ce paramtre est consult, le nombre de secondes
coules depuis le lancement de l'interprteur est renvoy. Si une
valeur est affecte SECONDS, les valeurs renvoyes lors des con-
sultations ultrieures sont le nombre de secondes coules depuis
l'affectation, ajoutes la valeur affecte. Si SECONDS est dtru-
ite, elle perd ses proprits spciales, mme si elle est recre par
la suite.
SHELLOPTS
Liste des options actives de l'interprteur, spares par des vir-
gules. Chaque mot de la liste est un argument correct pour
l'option -o de la commande interne set (voir plus bas COMMANDES
INTERNES DE L'INTERPRTEUR ). Les options apparaissant dans SHEL-
LOPTS sont celle indiques comme actives par set -o. Si cette
variable est dans l'environnement au lancement de bash, chaque
option de la liste est active avant de lire un quelconque
fichier d'initialisation. Cette variable est en lecture seule.
SHLVL Incrment de 1 chaque appel d'une instance de bash.
UID Contient l'UID de l'utilisateur courant, initialis au dmarrage
de l'interprteur. Cette variable est en lecture seule.
Les variables suivantes sont utilises par l'interprteur. Dans certains
cas, bash affecte des valeurs par dfaut aux variables ; ces cas sont
dcrits plus bas.
BASH_ENV
Si ce paramtre existe lorsque bash excute un script, sa valeur
est considre comme un nom de fichier contenant les commandes
d'initialisation de l'interprteur, comme dans ~/.bashrc. La
valeur de BASH_ENV est soumise au dveloppement des paramtres,
la substitution de commande et au dveloppement arithmtique avant
d'tre considre comme un nom de fichier. PATH n'est pas utilise
pour rechercher le fichier obtenu.
CDPATH Le chemin de recherche de la commande interne cd. Il s'agit
d'une liste de rpertoires, spars par des deux-points : , que
l'interprteur consulte lorsqu'il cherche un sous-rpertoire des-
tination de la commande cd. Un exemple de valeur est ".:~:/usr".
COLUMNS
Utilise par la commande interne select pour dterminer la taille
du terminal lors de l'affichage des listes de slection. Automa-
tiquement mis la rception d'un signal SIGWINCH.
COMPREPLY
Une variable de type tableau dans lequel bash lit les complte-
ments possibles produits par une fonction de l'interprteur
appele par les outils de compltement programmables (voir Com-
pltement programmable plus bas).
EMACS Si bash trouve cette variable dans l'environnement lorsque
l'interprteur dmarre avec la valeur "t", il considre que
l'interprteur est lanc dans un tampon d'interprteur emacs et
dsactive l'dition en ligne.
FCEDIT L'diteur par dfaut utilis par la commande interne fc.
FIGNORE
Une liste de suffixes, spars par des deux-points : , que bash
ignorera lors du compltement des noms de fichiers (voir READLINE
plus bas). Un nom de fichier dont le suffixe correspond l'un de
ceux mentionns dans FIGNORE est exclu de la liste des noms de
fichiers correspondant pour le compltement. Par exemple, cette
variable peut prendre la valeur ".o:~" (Des protections sont
ncessaires pour l'affectation d'une valeur cette variable, qui
contient des tildes).
GLOBIGNORE
Une liste de motifs spars par des deux-points, dfinissant
l'ensemble des noms de fichiers ignorer lors du dveloppement
des chemins. Si un nom de fichier correspondant un motif de
dveloppement des chemins, correspond galement un motif dans
GLOBIGNORE, il est supprim de la liste des correspondances.
HISTCONTROL
Une liste de valeurs, spares par des deux-points, commandant la
faon dont les commandes sont sauvegardes dans la file d'his-
torique. Si la liste des valeurs contient la valeur ignorespace,
les lignes commenant par une espace ne sont pas sauvegardes dans
la file d'historique. La valeur ignoredups conduit ne pas
sauvegarder une ligne correspondant exactement la ligne de com-
mande prcdente. La prsence de ignoreboth est un condens pour
ignorespace et ignoredups. La valeur erasedups conduit retirer
de la file d'historique toutes les lignes prcdant la ligne
courante et lui correspondant avant que cette ligne y soit
sauvegarde. Toute valeur qui ne fait pas partie de la liste
ci-dessus est ignore. Si HISTCONTROL est inexistante ou si elle
ne contient pas une valeur correcte, toutes les lignes lues par
l'analyseur de l'interprteur seront sauvegardes dans la file
d'historique, selon la valeur de HISTIGNORE. La seconde ligne et
les suivantes d'une commande multiligne ne sont pas testes et
sont ajoutes dans l'historique indpendamment de la valeur de
HISTCONTROL.
HISTFILE
Le nom du fichier dans lequel l'historique des commandes est
sauvegard (voir HISTORIQUE plus bas). Par dfaut, il s'agit de
~/.bash_history. Si inexistante, l'historique des commandes
n'est pas sauvegard lorsqu'un interprteur interactif termine.
HISTFILESIZE
Le nombre maximum de lignes contenues dans le fichier d'his-
torique. Quand cette variable contient une valeur, le fichier
historique est tronqu, si besoin, en enlevant les entres les
plus anciennes, pour ne contenir que ce nombre de lignes. La
valeur par dfaut est 500. Ce fichier est aussi tronqu
cette taille aprs son criture quand un interprteur interactif
termine.
HISTIGNORE
Une liste de motifs, spars par des deux-points, dterminant
quelles lignes de commande devraient tre sauvegardes dans la
file d'historique. Chaque motif est accroch au dbut de la ligne
et doit lui correspondre en compltement (aucun ajout de *
implicite). Chaque motif est compar chaque ligne aprs que les
vrifications de HISTCONTROL ont t appliques. En plus des motifs
gnriques usuels de l'interprteur, & correspond la ligne prc-
dente de l'historique. & peut tre protg par une con-
tre-oblique ; elle est supprime avant de tenter une comparaison.
La seconde ligne et les suivantes d'une commande multiligne ne
sont pas testes et sont ajoutes dans l'historique quelque soit
la valeur de HISTIGNORE.
HISTSIZE
Le nombre de commandes mmoriser dans l'historique (voir HIS-
TORIQUE plus bas). La valeur par dfaut est 500.
HISTTIMEFORMAT
Si cette variable existe et n'est pas vide, sa valeur est
utilise comme une chane de caractres par strftime(3) afin
d'imprimer l'horodatage associ
chaque lment de l'historique affiche par la commande interne
history. Si cette variable existe, les horodatages sont crits
dans le fichier historique afin d'tre conservs au fur et mesure
des sessions de l'interprteur.
HOME Le rpertoire d'accueil de l'utilisateur courant ; l'argument par
dfaut de la commande interne cd. La valeur de cette variable est
aussi utilise lors du dveloppement du tilde.
HOSTFILE
Contient le nom d'un fichier ayant le mme format que /etc/hosts
qui devra tre lu lorsque l'interprteur aura besoin de complter
un nom de machine. La liste des compltements possibles de noms
de machines peut tre change pendant l'excution de l'interpr-
teur ; la tentative de compltement 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, bash
essaie de lire /etc/hosts pour obtenir la liste des compltements
de noms de machines possibles. Lorsque HOSTFILE est dtruite, la
liste des noms de machines est efface.
IFS Le sparateur de champs interne ( Internal Field Separator ) qui
est utilis pour le dcoupage en mots aprs les dveloppements et
pour dcouper les lignes en mots avec la commande interne read.
La valeur par dfaut est <espace><tabulation><saut de ligne> .
IGNOREEOF
Commande le comportement d'un interprteur interactif rception
d'un caractre EOF (fin de fichier) comme unique saisie. Si exis-
tante la valeur est le nombre de caractres EOF conscutifs qui
doivent tre taps comme premiers caractres sur une ligne de
saisie avant que bash termine. Si la variable existe mais que sa
valeur n'est pas numrique ou si elle n'a pas de valeur, la
valeur par dfaut est 10. Si elle n'existe pas, EOF signifie la
fin de la saisie pour l'interprteur.
INPUTRC
Le nom du fichier de configuration de readline prioritaire sur
le fichier par dfaut ~/.inputrc (voir READLINE plus bas).
LANG Utilise pour dterminer le paramtre linguistique rgional pour
toute catgorie non spcifiquement slectionne par une variable
commenant par LC_.
LC_ALL Cette variable surpasse LANG et toute autre variable LC_ spcifi-
ant une catgorie de paramtres linguistiques rgionaux.
LC_COLLATE
Cette variable dtermine l'ordre de collation utilis pour trier
les rsultats du dveloppement des chemins et dtermine le com-
portement des expressions de plage, des classes d'quivalences et
des suites de collations dans le dveloppement des chemins et la
correspondance de motifs.
LC_CTYPE
Cette variable dtermine l'interprtation des caractres et le com-
portement des classes de caractres lors du dveloppement des
chemins et de la recherche de correspondances de motifs.
LC_MESSAGES
Cette variable dtermine le paramtre linguistique rgional utilis
pour traduire les chanes entre guillemets doubles prcdes d'un $.
LC_NUMERIC
Cette variable dtermine le paramtre linguistique rgional utilis
pour formater les nombres.
LINES Utilise par la commande interne select pour dterminer la
longueur de colonne lors de l'affichage des listes de slection.
Automatiquement mise la rception d'un signal SIGWINCH.
MAIL Si ce paramtre correspond un nom de fichier et si la variable
MAILPATH est inexistante, bash informe l'utilisateur de l'arrive
de messages dans le fichier spcifi.
MAILCHECK
Indique l'intervalle (en secondes) avec lequel bash vrifie si un
nouveau message est arriv. La valeur par dfaut est 60 secondes.
Lorsque le dlai est coul, l'interprteur vrifiera la prsence d'un
courriel avant d'afficher son invite de base. Si cette variable
est inexistante, ou mise une valeur qui n'est pas un nombre
positif, l'interprteur dsactive la vrification des courriels.
MAILPATH
Une liste de noms de fichiers spars par des deux-points : ,
dans lesquels on vrifiera l'arrive de courriel. Le nom d'un
fichier peut tre suivi d'un point d'interrogation ? , puis
d'une chane de caractres spcifiant le message afficher en cas
de courriel. Dans cette chane, le paramtre $_ correspond au nom
du fichier de courriel courant. Exemple :
MAILPATH='/usr/spool/mail/bfox?"Vous avez du cour-
riel":~/shell-mail?"$_ a du courriel !"'
Bash fournit une valeur par dfaut pour cette variable, mais
l'emplacement du fichier bote lettres dpend du systme (par
exemple /usr/spool/mail/$USER).
OPTERR Si mis la valeur 1, bash affiche les messages d'erreurs engen-
drs par la commande interne getopts (voir plus bas COMMANDES
INTERNES DE L'INTERPRTEUR ). OPTERR est initialise avec la
valeur 1 chaque appel de l'interprteur ou au lancement d'un
script.
PATH Le chemin de recherche des commandes excuter. Il s'agit d'une
liste de rpertoires, spars par des deux-points : dans lesquels
l'interprteur recherche les commandes (voir plus bas EXCUTION
DES COMMANDES ). Un nom de rpertoire de taille nulle (vide) dans
la valeur de PATH dsigne le rpertoire courant. Un rpertoire vide
peut apparatre comme deux deux-points conscutifs ou comme des
deux-points en dbut ou en fin. Le chemin par dfaut dpend du
systme et est choisi par l'administrateur installant bash. Une
valeur commune est
``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
POSIXLY_CORRECT
Si cette variable existe dans l'environnement lorsque bash
dmarre, l'interprteur passe en mode posix avant de lire les
fichiers de configuration comme si l'option --posix avait t
fournie. Si elle est cre pendant que l'interprteur est en cours
d'excution, bash active le mode posix comme si la commande set
-o posix avait t excute.
PROMPT_COMMAND
Si existante, sa valeur est excute comme commande pralablement
l'affichage de chaque invite de base.
PS1 La valeur de ce paramtre est dveloppe puis utilise comme la
chane d'invite de base (voir INVITE plus bas). La valeur par
dfaut est \s-\v\$ .
PS2 La valeur de ce paramtre est dveloppe comme PS1 puis utilise
comme chane d'invite secondaire. La valeur par dfaut est > .
PS3 La valeur de ce paramtre est utilise comme l'invite pour la com-
mande select (voir GRAMMAIRE DE L'INTERPRTEUR plus haut).
PS4 La valeur de ce paramtre est dveloppe comme PS1 puis affiche
entre chaque commande lors d'un suivi d'excution. Le premier
caractre de PS4 est rpt autant de fois que ncessaire pour indi-
quer le niveau d'imbrication. La valeur par dfaut est + .
SHELL Le chemin d'accs complet l'interprteur de commandes est conserv
dans cette variable d'environnement. Si inexistante au dmarrage
de l'interprteur, bash lui affecte le chemin d'accs complet
l'interprteur de commandes de connexion de l'utilisateur
courant.
TIMEFORMAT
La valeur de ce paramtre est utilise en tant que chane de format
spcifiant comment les informations de paramtrage doivent tre
affiches pour les conduites prcdes du mot rserv time. Le carac-
tre % introduit une suite de caractres d'chappement qui est
dveloppe en une valeur de temps ou une autre information. Les
suites de caractres d'chappement et leurs significations sont
les suivantes ; les accolades marquent les parties facultatives.
%% Un % seul (non interprt).
%[p][l]R Le temps coul en secondes.
%[p][l]U Le temps processeur coul en mode utilisateur en secon-
des.
%[p][l]S Le temps processeur coul en mode systme en secondes.
%P Le pourcentage de temps processeur utilis calcul avec
(%U + %S) / %R.
Le p facultatif est un chiffre indiquant la prcision, le nombre
de chiffres aprs la virgule. Une valeur de 0 conduit affichage
de nombre entiers. Trois chiffres au plus peuvent tre affichs
aprs la virgule ; tout chiffre suprieur 3 sera chang en 3. Si p
n'est pas spcifi, la valeur 3 est utilise.
Le l facultatif spcifie un format plus long, incluant les min-
utes, de la forme MMmSS.DDs. La valeur de p dtermine si la par-
tie dcimale est affiche ou non.
Si cette variable n'existe pas, bash agit comme si elle avait la
valeur $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'. Si la valeur est
vide, aucune information de chronomtrage n'est affiche. Un car-
actre final de saut de ligne est ajout quand la chane de format
est affiche.
TMOUT Si mise une valeur strictement positive, TMOUT est traite comme
le dlai par dfaut pour la commande interne read. La commande
select termine s'il n'y a pas de saisie au bout de TMOUT secon-
des lorsque l'entre vient d'un terminal. Dans un interprteur
interactif, la valeur est interprte comme le nombre de secondes
attendre pour une saisie aprs avoir mis l'interprteur de base.
bash termine aprs avoir attendu pendant ce nombre de secondes si
aucune saisie n'est arrive.
TMPDIR Si existante, Bash utilise sa valeur comme le nom d'un rpertoire
dans lequel Bash cre des fichiers temporaires ncessaires au
fonctionnement de l'interprteur.
auto_resume
Cette variable commande le comportement de l'interprteur
vis--vis de l'utilisateur et du contrle des tches. Si cette
variable existe, les commandes simples constitues d'un seul mot,
sans redirection, sont considres comme de possibles relances de
tches suspendues. Aucune ambigut n'est possible, si plusieurs
tches commencent par la chane saisie, la tche laquelle il a t
accd le plus rcemment est slectionne. Le nom d'une tche sus-
pendue, dans ce contexte, est la ligne de commande utilise pour
la lancer. Si mise la valeur exact, la chane fournie doit cor-
respondre exactement au nom d'une tche suspendue ; si mise sub-
string, la chane fournie doit correspondre une sous-chane du
nom de la tche suspendue. La valeur substring donne une fonc-
tionnalit analogue l'identificateur de tche %? (voir plus bas
CONTRLE DES TCHES ). Si mise toute autre valeur, la chane
fournie doit tre le prfixe du nom d'une tche suspendue ; cela
donne une fonctionnalit analogue l'identificateur de tche
%string.
command_not_found_handle
Le nom d'une fonction de l'interprteur appeler si une commande
ne peut tre trouve. La valeur renvoye par cette fonction devrait
tre 0, si la commande est disponible aprs excution de la fonc-
tion, sinon 127 (EX_NOTFOUND). Activ seulement dans les interpr-
teurs interactif, en mode non POSIX. C'est une extension Debian.
histchars
Les deux ou trois caractres commandant le dveloppement de l'his-
torique et le dcoupage en lexmes (voir plus bas DVELOPPEMENT DE
L'HISTORIQUE ). Le premier caractre est le caractre de dveloppe-
ment de l'historique, c'est--dire celui qui indique le dbut d'un
dveloppement d'historique (normalement ! ). Le second caractre
est celui de substitution rapide, utilis comme raccourci pour
relancer la commande prcdente, en modifiant une partie de la
chane. Par dfaut il s'agit de ^ . Le troisime caractre facul-
tatif est celui qui indique, lorsqu'on le trouve en dbut de mot
que le reste de la ligne est un commentaire. Normalement on
utilise le caractre # . Ce caractre de commentaire empche le
dveloppement de l'historique pour tous les mots restants sur la
ligne. Il ne conduit pas ncessairement l'analyseur de l'interpr-
teur considrer le reste de la ligne comme un commentaire.
Tableaux
Bash fournit des variables tableaux une dimension. Toute variable peut
tre utilise comme tableau ; la commande interne declare peut servir
dclarer explicitement un tableau. Il n'y a pas de limitation maximum
la taille d'un tableau, ni d'obligation que les lments soient indics ou
affects de faon contigu. Les tableaux sont indics par des entiers en
commenant zro.
Un tableau est cr automatiquement si une variable quelconque est
affecte en utilisant la syntaxe nom[indice]=valeur. L'indice est trait
comme une expression arithmtique et s'value en un nombre positif. Pour
dclarer explicitement un tableau, on utilise declare -a nom (voir plus
bas COMMANDES INTERNES DE L'INTERPRTEUR ). declare -a nom[indice] est
aussi accept ; l'indice est ignor. Des attributs peuvent tre spcifis
pour une variable tableau en utilisant les commandes internes declare
et readonly. Les attributs s'appliquent tous les lments d'un tableau.
Les tableaux sont affects en utilisant l'affectation compose de la
forme nom=(valeur_1 ... valeur_n), o chaque valeur est de la forme
[indice]=chane. Seule la chane est obligatoire. Si les crochets et les
indices facultatifs sont fournis, les affectations ont lieu en con-
squence ; sinon l'indice de l'lment affect est le dernier indice affect
plus un. Les indices commencent zro. Cette syntaxe est aussi accepte
par la commande interne declare. Les lments individuels du tableau sont
affects en utilisant la syntaxe nom[indice]=valeur prsente plus haut.
On peut accder tout lment d'un tableau en utilisant la notation
${nom[indice]}. Les accolades sont ncessaires pour viter les conflits
avec le dveloppement des chemins. Si indice est @ ou *, le mot se
dveloppe en tous les lments de nom. Ces deux indices ne diffrent que
lorsque le mot apparat entre guillemets doubles. Si le mot est entre
guillemets doubles, ${nom[*]} se dveloppe en un seul mot contenant les
valeurs de chaque lment du tableau spares par le premier caractre de la
variable spciale IFS et ${nom[@]} dveloppe chaque lment de nom en un
mot distinct. Quand il n'y a pas d'lment dans le tableau, ${nom[@]} ne
se dveloppe en rien. Si le dveloppement entre guillemets doubles
survient l'intrieur d'un mot, le dveloppement du premier paramtre est
accol la premire partie du mot original et le dveloppement du dernier
paramtre est accol la dernire partie du mot original. Le comportement
est analogue celui des paramtres spciaux * et @ (voir Paramtres spci-
aux plus haut). ${#nom[indice]} s'value en la longueur de l'lment
${nom[indice]}. Si l'indice est * ou @, s'value en le nombre d'lments
dans le tableau. Accder
une variable tableau sans indice est quivalent accder l'lment zro.
La commande interne unset sert dtruire les tableaux. unset nom[indice]
dtruit l'lment de tableau d'indice indice. Un soin particulier doit tre
apport afin d'viter des effets de bords non dsirs provoqus par la pro-
duction des noms de fichiers. 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 spcifier un tableau. La commande interne read accepte
une option -a pour affecter une liste de mots lus depuis l'entre stan-
dard dans un tableau. Les commandes internes set et declare affichent
les valeurs d'un tableau d'une faon qui permet de les rutiliser pour
des affectations.
Les dveloppements sont appliqus la ligne de commande aprs qu'elle a t
dcoupe en mots. Sept types de dveloppements sont effectus : le
dveloppement des accolades, le dveloppement du tilde, le dveloppement
des paramtres et des variables, la substitution de commande, le
dveloppement arithmtique, le dcoupage en mots et le dveloppement des
chemins.
L'ordre des dveloppements est : dveloppement des accolades, du tilde,
des paramtres, des variables, arithmtique et substitution de commande
(effectue de la gauche vers la droite), dcoupage en mots et dveloppe-
ment des chemins.
Sur les systmes qui le supportent, un dveloppement supplmentaire a
lieu : la substitution de processus.
Seuls le dveloppement des accolades, le dcoupage en mots et le
dveloppement des chemins peuvent modifier le nombre de mots. Les autres
dveloppement transforment un mot unique en un autre mot unique. La
seule exception cette rgle est le dveloppement de $@ et ${nom[@]}
comme expliqu plus haut (voir PARAMTRES ).
Dveloppement des accolades
Le dveloppement des accolades est un mcanisme permettant de produire
des chanes quelconques. Il est similaire au dveloppement des chemins,
mais les noms de fichiers produits n'existent pas ncessairement. Les
motifs qui seront dvelopps prennent la forme d'un prambule facultatif,
suivi par soit une srie de chanes spares par des virgules, soit
l'expression d'une srie entre accolades, suivi par un post-scriptum
facultatif. Le prambule est insr devant chacune des chanes contenues
entre les accolades et le post-scriptum est concatn la fin de chacune
des chanes rsultantes, le dveloppement se faisant de gauche droite.
Plusieurs dveloppements d'accolades peuvent tre imbriqus. Les rsultats
de chaque dveloppement ne sont pas tris, l'ordre de gauche droite est
conserv. Par exemple a{d,c,b}e se dveloppe en ade ace abe .
Une expression d'une srie est de la forme {x..y}, o x et y sont soit
des entiers, soit des caractres seuls. Lorsqu'il s'agit d'entiers,
l'expression est remplace par la liste des nombres entre x et y, x et y
compris. S'il s'agit de caractres, l'expression se dveloppe en l'ensem-
ble des caractres situs entre x et y d'un point de vue lexicographique.
Remarquez que x et y doivent tre du mme type.
Le dveloppement des accolades est effectu avant tout autre dveloppement
et tous les caractres ayant une signification spciale pour les autres
dveloppements sont conservs dans le rsultat. Il s'agit d'une modifica-
tion purement littrale. Bash n'effectue aucune interprtation syntaxique
du texte entre les accolades.
Un dveloppement d'accolades correctement form doit contenir des acco-
lades ouvrantes et fermantes non protges et au moins une virgule non
protge ou une expression d'une srie correcte. Tout dveloppement d'acco-
lades incorrectement form est laiss inchang. Un { ou un , peuvent tre
protgs par une contre-oblique pour viter d'tre considrs comme partie
d'une expression entre accolades. Pour viter tout conflit avec le
dveloppement des paramtres, la chane ${ n'est pas considre comme ligi-
ble au dveloppement des accolades.
Cette construction est typiquement utilise comme raccourci lorsque le
prfixe commun aux chanes engendrer est plus long que dans l'exemple
ci-dessus :
mkdir /usr/local/src/bash/{old,new,dist,bugs}
ou
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
Le dveloppement des accolades induit une lgre 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 inchanges. Bash supprime les accolades dans les mots,
aprs dveloppement. Par exemple, si l'on fournit sh le mot file{1,2},
il reste inchang en sortie. Par contre, il est transform en file1 file2
par bash. Si une compatibilit stricte avec sh est ncessaire, lancez
bash avec l'option +B ou dsactivez le dveloppement des accolades avec
l'option +B de la commande set (voir plus bas COMMANDES INTERNES DE
L'INTERPRTEUR ).
Dveloppement du Tilde
Si un mot commence avec un caractre tilde ( ~ ) non protg, tous les
caractres prcdant la premire barre oblique non protge (voire tous les
caractres s'il n'y a pas de barre oblique non protge), sont considrs
comme un prfixe tilde. Si aucun caractre du prfixe tilde n'est protg,
les caractres suivant le tilde sont traits comme un possible identifi-
ant de connexion. Si cet identifiant de connexion est une chane vide,
le tilde est remplac par la valeur du paramtre d'interprteur HOME. Si
HOME est inexistante, le rpertoire d'accueil de l'utilisateur excutant
l'interprteur est utilis la place. Sinon le prfixe tilde est remplac
par le rpertoire d'accueil associ l'identifiant de connexion spcifi.
Si le prfixe tilde est ~+ , la valeur de la variable de l'interprteur
PWD le remplace. Si le prfixe tilde est ~- , la valeur de la variable
de l'interprteur OLDPWD, si existante, lui est substitue. Si les carac-
tres la suite du tilde dans le prfixe tilde reprsentent un nombre N
prfix facultativement par un + ou un - le prfixe tilde est remplac
par l'lment correspondant de la pile de rpertoires telle qu'il serait
affich par la commande interne dirs appele avec le prfixe tilde en
argument. Si les caractres la suite du tilde dans le prfixe tilde
reprsentent un nombre sans un + ou - en tte, on suppose qu'il
s'agit de + .
Si l'identifiant de connexion est incorrect ou si le dveloppement du
tilde choue, le mot est inchang.
Chaque affectation de variable vrifie immdiatement la prsence de
prfixes tilde non protgs suivant un : ou le premier =. Dans ces cas, le
dveloppement des tildes est aussi effectu. On peut donc utiliser des
noms de fichiers avec des tildes dans des affectations de PATH, MAIL-
PATH et CDPATH et l'interprteur affectera la valeur dveloppe.
Remplacement des paramtres
Le caractre $ permet d'introduire le dveloppement des paramtres, la
substitution de commande ou le dveloppement arithmtique. Le nom du
paramtre ou du symbole dvelopper peut tre encadr par des accolades qui
sont facultatives mais servent viter le dveloppement de la variable
partir de caractres la suivant immdiatement qui pourraient tre considrs
comme appartenant son nom.
Lorsque les accolades sont utilises, l'accolade de fin correspondante
est le premier caractre } non protg par une contre-oblique ni inclus
dans une chane protge, ni dans un dveloppement arithmtique, une substi-
tution de commande ou un dveloppement des paramtres.
${paramtre}
est remplac par la valeur du paramtre. Les accolades sont nces-
saire quand le paramtre est un paramtre positionnel ayant
plusieurs chiffres, ou si le paramtre est suivi de caractres
n'appartenant pas son nom.
Si le premier caractre du paramtre est un point d'exclamation, un
niveau d'indirection de variable est introduit. Bash utilise la valeur
de la variable forme par le reste du paramtre comme un nom de variable.
Cette variable est alors dveloppe et la valeur utilise pour le reste de
la substitution plutt que la valeur du paramtre lui-mme. On appelle ce
mcanisme le dveloppement indirect. Les exceptions celui-ci sont les
dveloppements de ${!prefix*} et de ${!nom[@]} dcrits plus bas. Le point
d'exclamation doit immdiatement suivre l'accolade ouvrante afin
d'introduire l'indirection.
Dans chacun des cas ci-dessous, le mot est soumis au dveloppement du
tilde, au dveloppement des paramtres, la substitution de commande et
au dveloppement arithmtique. Quand il n'effectue pas de dveloppement de
sous-chane, bash teste si le paramtre est inexistant ou vide ;
l'absence des deux-points induit un test sur la seule inexistence du
paramtre.
${paramtre:-mot}
Utilisation de valeurs par dfaut. Si le paramtre est inexistant
ou vide, le dveloppement du mot et substitu. Sinon, c'est la
valeur du paramtre qui est substitue.
${paramtre:=mot}
Affectation d'une valeur par dfaut. Si le paramtre est inexis-
tant ou vide, le dveloppement du mot lui est affect. La valeur
du paramtre est alors substitu. Les paramtres positionnels et
spciaux ne peuvent pas tre affects de cette faon.
${paramtre:?mot}
Affichage d'erreur si vide ou inexistant. Si le paramtre est
inexistant ou vide, le dveloppement du mot (ou un message appro-
pri si aucun mot n'est fourni) est affich sur la sortie d'erreur
standard et l'interprteur termine, s'il n'est pas interactif.
Sinon, la valeur du paramtre est substitue.
${paramtre:+mot}
Utilisation d'une valeur diffrente. Si le paramtre est vide ou
inexistant, rien n'est substitu. Sinon le dveloppement du mot
est substitu.
${paramtre:dbut}
${paramtre:dbut:longueur}
Extraction de sous-chanes. Se dveloppe pour fournir la
sous-chane de la longueur indique (compte en caractres) com-
menant au dbut. Si la longueur est omise, fournit la sous-chane
commenant au caractre de dbut et s'tendant jusqu' la fin du
paramtre. La longueur et le dbut sont des expressions arithm-
tiques (voir VALUATION ARITHMTIQUE plus bas). La longueur doit
tre positive. Si le dbut est ngatif, sa valeur est considre
partir de la fin du contenu du paramtre. Les expressions arithm-
tiques commenant par un - doivent tre spares par une espace des
: (deux-points) les prcdant pour tre distingues du dveloppement
Utilisation de valeurs par dfaut. Si le paramtre est @, le rsul-
tat correspond aux longueur paramtres positionnels commenant au
dbut. Si le paramtre est un nom de tableau indic par @ ou *, le
rsultat est les longueur lments du tableau commenant
${paramtre[dbut]}. Une valeur ngative de dbut est prise rela-
tivement la valeur maximum de l'indice du tableau considr, aug-
mente de un. Remarquez qu'une valeur ngative de dbut doit tre
spare du deux-points par au moins une espace pour viter toute
confusion avec le dveloppement de :- . L'indexation des
sous-chanes dbute zro, sauf pour les paramtres positionnels
pour lesquels l'indexation commence 1.
${!prfixe*}
${!prfixe@}
Se dveloppe en les noms des variables dont les noms commencent
par prfixe, spars par le premier caractre de la variable spciale
IFS.
${!nom[@]}
${!nom[*]}
Si nom est une variable de type tableau, elle se dveloppe en la
liste des indices (clefs) du tableau affect nom. Si nom n'est
pas un tableau, se dveloppe en 0 si nom existe et en vide sinon.
Quand @ est utilis et que le dveloppement apparat entre
guillemets doubles, chaque clef se dveloppe en un mot spar.
${#paramtre}
Est remplac par la longueur, en caractres, de la valeur du
paramtre. Si le paramtre est * ou @, la valeur est le nombre de
paramtres positionnels. Si le paramtre est un nom de tableau
indic par * ou @, la valeur donne est le nombre d'lments dans le
tableau.
${paramtre#mot}
${paramtre##mot}
Le mot est dvelopp pour fournir un motif, comme dans le
dveloppement des chemins. Si le motif correspond au dbut de la
valeur du paramtre, alors le dveloppement prend la valeur
dveloppe du paramtre aprs suppression du plus court (cas # ) ou
du plus long (cas ## ) motif correspondant. Si le paramtre est
@ ou *, l'opration de suppression de motif est applique chaque
paramtre positionnel tour tour et le dveloppement est la liste
rsultante. Si le paramtre est une variable tableau indice par @
ou *, l'opration de suppression de motif est applique chaque
lment du tableau tour tour et le dveloppement est la liste
rsultante.
${paramtre%mot}
${paramtre%%mot}
Le mot est dvelopp pour fournir un motif, comme dans le
dveloppement des chemins. Si le motif correspond une portion
finale de la valeur dveloppe du paramtre, alors le dveloppement
prend la valeur dveloppe du paramtre aprs suppression du plus
court (cas % ) ou du plus long (cas %% ) motif correspondant.
Si le paramtre est @ ou *, l'opration de suppression de motif
est applique chaque paramtre positionnel tour tour et le
dveloppement est la liste rsultante. Si le paramtre est une
variable tableau indice par @ ou *, l'opration de suppression de
motif est applique chaque lment du tableau tour tour et le
dveloppement est la liste rsultante.
${paramtre/motif/chane}
Le motif est dvelopp comme dans le traitement des chemins. Le
paramtre est dvelopp et la plus longue portion correspondant au
motif est remplace par la chane. Si le motif commence par /,
toutes les correspondances au motif sont remplaces par la chane.
Normalement, seule la premire correspondance est remplace. Si le
motif commence par #, il doit correspondre au dbut de la valeur
dveloppe du paramtre. Si le motif commence par %, il doit corre-
spondre la fin du dveloppement du paramtre. Si la chane est
vide, les portions correspondant au motif sont supprimes et le /
aprs le motif peut tre omis. Si le paramtre est @ ou *, l'opra-
tion de substitution est applique chacun des paramtres posi-
tionnels tour tour et le dveloppement est la liste rsultante.
Si le paramtre est une variable tableau indice par @ ou *,
l'opration de substitution s'applique chaque lment du tableau
tour tour et le dveloppement est la liste rsultante.
Substitution de commande
La substitution de commande permet de remplacer le nom d'une commande
par son rsultat. Il en existe deux formes :
$(commande)
ou
`commande`
Bash effectue la substitution en excutant la commande et en la rem-
plaant par sa sortie standard, dont les ventuels sauts de lignes finaux
sont supprims. Les sauts de lignes internes ne sont pas supprims mais
peuvent disparatre lors du dcoupage en mots. La substitution de com-
mande $(cat fichier) peut tre remplace par l'quivalent plus rapide $(<
fichier).
Quand l'ancienne forme de substitution avec les accents graves ` est
utilise, le caractre contre-oblique garde sa signification propre sauf
lorsqu'il est suivi de $, ` ou \. Le premier accent grave non protg par
une contre-oblique termine la substitution de commande. Quand on
utilise la forme $(commande), tous les caractres entre parenthses con-
stituent la commande ; aucun n'est trait spcifiquement.
Les substitutions de commande peuvent tre imbriques. Pour imbriquer en
utilisant la forme accents graves, il faut protger les accents graves
internes avec des contre-obliques.
Si la substitution apparat entre guillemets doubles, le dcoupage en
mots et le dveloppement des chemins ne sont pas effectus sur ses rsul-
tats.
Dveloppement arithmtique
Le dveloppement arithmtique permet de remplacer une expression arithm-
tique par le rsultat de son valuation. Le format du dveloppement
arithmtique est :
$((expression))
L'ancien format $[expression] est obsolte et sera supprim dans les
prochaines versions de bash.
L'expression est traite comme si elle tait entre guillemets doubles,
mais un guillemet double l'intrieur de parenthses n'est pas trait
spcifiquement. Tous les lexmes dans l'expression sont sujet au
dveloppement des paramtres, la substitution de commande et la sup-
pression des protections. Les dveloppements arithmtiques peuvent tre
imbriqus.
L'valuation est effectue en suivant les rgles dcrites plus bas dans
VALUATION ARITHMTIQUE. 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 systmes
acceptant le mcanisme des tubes nomms (FIFO) ou la mthode /dev/fd de
noms de fichiers. Elle prend la forme <(liste) ou >(liste). La liste de
processus est excute avec son entre ou sa sortie connecte une FIFO ou
un fichier dans /dev/fd. Le nom de ce fichier est pass en argument la
commande qui sera excute comme rsultat de cette substitution. Si on
utilise la forme >(liste), l'criture dans le fichier fournira des
entres pour la liste. Si la forme <(liste) est utilise, le fichier
passe en argument devra tre lu pour obtenir la sortie de la liste.
Sur les systmes qui le permettent, la substitution de processus est
effectue simultanment au dveloppement des paramtres et variables, la
substitution de commande et au dveloppement arithmtique.
Dcoupage en mots
Les rsultats du dveloppement des paramtres, de la substitution de com-
mande et du dveloppement arithmtique qui ne se trouvent pas entre
guillemets doubles sont analyss par l'interprteur afin d'appliquer le
dcoupage en mots.
L'interprteur considre chaque caractre du paramtre IFS comme un dlimi-
teur et dcoupe le rsultat des transformations prcdentes en fonction de
ceux-ci. Si IFS est inexistante ou si sa valeur est exactement
<espace><tabulation><saut de ligne>, la valeur par dfaut, alors toute
suite de caractres de IFS sert
dlimiter les mots. Si IFS a une valeur autre que celle par dfaut,
alors les suites de caractres blancs espace et tabulation sont ignores
en dbut et fin de mot, condition que ces caractres blancs se trouvent
dans la valeur de IFS (un caractre blanc de IFS ). Tout caractre de IFS
qui n'est pas un caractre blanc, se trouvant ct d'un caractre blanc de
IFS, dlimite un champ. Une suite de caractres blancs de IFS est gale-
ment traite comme un dlimiteur. Si la valeur de IFS est vide, aucun
dcoupage en mots n'a lieu.
Les arguments vides explicites ("" ou '') sont conservs. Les arguments
vides implicites non protgs, rsultant du dveloppement des paramtres qui
n'ont pas de valeurs, sont supprims. Si un paramtre sans valeur est
dvelopp entre guillemets doubles, le rsultat est un argument vide qui
est conserv.
Remarquez que si aucun dveloppement n'a lieu, le dcoupage en mots n'est
pas effectu.
Dveloppement des chemins
Aprs le dcoupage en mots, moins que l'option -f soit prsente, bash
recherche dans chaque mot les caractres *, ? et [. Si l'un d'eux appa-
rat, le mot est considr comme un motif et remplac par une liste, classe
par ordre alphabtique, des noms de fichiers correspondant ce motif. Si
aucun nom de fichier ne correspond et si l'option d'interprteur null-
glob est dsactive, le mot reste inchang. Si l'option nullglob existe et
si aucune correspondance n'est trouve, le mot est supprim. Si l'option
d'interprteur failglob existe et si aucune correspondance n'est trouve,
un message d'erreur est affich et la commande n'est pas excute. Si
l'option d'interprteur nocaseglob est active, la correspondance est
effectue sans tenir compte de la casse des caractres alphabtiques.
Remarquez que lorsque des expressions de plage comme [a-z] (voir plus
bas) sont utilises les lettres de l'autre casse peuvent tre incluses,
selon le paramtrage de LC_COLLATE. Quand un motif est utilis pour le
dveloppement des chemins, le caractre . au dbut d'un nom ou immdiate-
ment la suite d'une barre oblique doit tre explicitement mis en corre-
spondance, moins que l'option d'interprteur dotglob n'existe. Lors de
la correspondance avec un chemin, le caractre barre oblique doit tou-
jours tre mis en correspondance explicitement. Dans les autres cas, le
caractre . n'est pas trait spcifiquement. Voyez la description de la
commande shopt dans COMMANDES INTERNES DE L'INTERPRTEUR pour une
description des options d'interprteur nocaseglob, nullglob, failglob et
dotglob.
La variable de l'interprteur 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 GLOBIG-
NORE est supprim de la liste des correspondances. Les noms de fichiers
. et .. sont toujours ignors quand GLOBIGNORE existe et n'est pas
vide. Toutefois, configurer GLOBIGNORE avec une valeur non vide a pour
effet d'activer l'option d'interprteur dotglob, ainsi tous les autres
noms de fichiers commenant par . correspondront. Pour obtenir
l'ancien comportement ignorant les noms commenant par . , placez .*
dans l'un des motifs de GLOBIGNORE. L'option dotglob est dsactive si
la variable GLOBIGNORE est inexistante.
Motifs gnriques
Tout caractre apparaissant dans un motif, hormis les caractres spciaux
dcrits plus bas correspond avec lui-mme. Le caractre NUL ne peut pas se
trouver dans un motif. Une contre-oblique protge le caractre qui la
suit ; la contre-oblique de protection est supprime lors de la
recherche de correspondance. Les caractres spciaux de motifs doivent
tre protgs s'ils sont destins une correspondance littrale.
Les caractres spciaux ont les significations suivantes :
* Correspond toute chane, y compris la chane vide.
? Correspond n'importe quel caractre.
[...] Correspond tout caractre entre les crochets. Un couple de car-
actres spars par un trait d'union indique une expression de
plage ; tout caractre qui correspond n'importe quel caractre
situ entre les deux bornes incluses, en utilisant les suites de
collations des paramtres linguistiques rgionaux courants et le
jeu de caractres. Si le premier caractre suivant le [ est un !
ou un ^ alors la correspondance se fait sur tous les caractres
hors plage. L'ordre de tri des caractres dans les expressions de
plage est dtermin par les paramtres linguistiques rgionaux
courants et par la valeur de la variable de l'interprteur
LC_COLLATE si existante. Un - peut tre mis en correspondance en
l'incluant en premier ou dernier caractre de l'ensemble. Un ]
peut tre mis en correspondance en l'incluant en premier caractre
de l'ensemble.
Entre [ et ], on peut indiquer une classe de caractre en util-
isant la syntaxe [:classe:], o classe est l'une des classes
suivantes, dfinies dans le standard POSIX :
alnum alpha ascii blank cntrl digit graph lower print punct
space upper word xdigit
Une classe correspond un caractre quelconque qui s'y trouve. La
classe de caractres word correspond aux lettres, aux chiffres et
au caractre soulign _ .
Entre [ et ], on peut indiquer une classe d'quivalence en util-
isant la syntaxe [=c=], qui correspond n'importe quel caractre
ayant le mme poids de collation (comme indiqu par les paramtres
linguistiques rgionaux courants) que le caractre c.
Entre [ et ], la syntaxe [.symbole.] correspond au symbole de
collation symbole.
Si l'option extglob d'interprteur est active par la commande interne
shopt plusieurs oprateurs de correspondance tendue sont reconnus. Dans
la description suivante, une liste-motif est une liste d'un ou
plusieurs motifs spars par des |. Les motifs composs sont forms en
utilisant un ou plusieurs sous-motifs comme suit :
?(liste-motif)
Correspond zro ou une occurrence des motifs indiqus
*(liste-motif)
Correspond zro ou plusieurs occurrences des motifs
indiqus
+(liste-motif)
Correspond une ou plusieurs occurrences des motifs
indiqus
@(liste-motif)
Correspond une occurrence exactement des motifs indiqus
!(liste-motif)
Correspond tout sauf l'un des motifs indiqus
Suppression des protections
Aprs les dveloppements prcdents, toutes les occurrences non protges des
caractres \, ' et " qui ne rsultent pas d'un des dveloppements
ci-dessus sont supprimes.
Avant qu'une commande ne soit excute, il est possible de rediriger son
entre et sa sortie en utilisant une notation spciale interprte par
l'interprteur. Les redirections peuvent galement servir ouvrir ou fer-
mer des fichiers dans l'environnement courant de l'interprteur. Les
oprateurs de redirection suivants peuvent prcder ou apparatre n'importe
o dans une commande simple ou suivre une commande. Les redirections
sont traites dans leur ordre d'apparition, de gauche droite.
Dans les descriptions suivantes, si le numro de descripteur de fichier
est omis et si le premier caractre de l'oprateur de redirection est <,
la redirection se rapporte l'entre standard (descripteur de fichier
0). Si le premier caractre de l'oprateur de redirection est >, la redi-
rection se rapporte la sortie standard (descripteur de fichier 1).
Le mot qui suit l'oprateur de redirection dans les descriptions suiv-
antes,
moins qu'il en soit fait tat autrement, est soumis au dveloppement des
accolades, du tilde, des paramtres, la substitution de commande, au
dveloppement arithmtique, la suppression des protections, au dveloppe-
ment des chemins et au dcoupage en mots. S'il se dveloppe en plusieurs
mots, bash signale une erreur.
Remarquez que l'ordre des redirections est important. Par exemple, la
commande
ls > liste_rpertoires 2>&1
redirige la fois la sortie standard et la sortie d'erreur standard
vers le fichier liste_rpertoires, alors que la commande
ls 2>&1 > liste_rpertoires
ne redirige que la sortie standard vers le fichier liste_rpertoires,
car la sortie d'erreur standard a t duplique vers la sortie standard
avant que celle-ci ne soit redirige vers liste_rpertoires.
Bash gre plusieurs noms de fichiers de faon particulire, lorsqu'ils
sont utiliss dans des redirections, comme dcrit dans la table suiv-
ante :
/dev/fd/fd
Si fd est un entier correct, le descripteur de fichier fd
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/host/port
Si host est une adresse Internet ou un nom de machine
correct et si port est un numro de port entier ou un
nom de service, bash tentera d'ouvrir une connexion TCP
sur la socket correspondante.
/dev/udp/host/port
Si host est un nom de machine correct ou une adresse
Internet et si port est un numro de port entier ou un nom
de service, bash tentera d'ouvrir une connexion UDP sur
la socket correspondante.
Remarque : Bash, comme empaquet pour Debian, ne permet pas l'utilisa-
tion des fichiers /dev/tcp et /dev/udp.
Un chec l'ouverture ou la cration d'un fichier conduit l'chec de la
redirection.
Les redirections qui utilisent des descripteurs de fichiers suprieurs
9 doivent tre utiliss avec prcaution car il peut y avoir des conflits
avec les descripteurs de fichiers que l'interprteur utilise en interne.
Notez que la commande interne exec peut faire appliquer les redirec-
tions
l'interprteur de commande en cours.
Redirection d'entre
Une redirection d'entre conduit l'ouverture en lecture avec le
descripteur de fichier numro n du fichier dont le nom rsulte du
dveloppement du mot ou en tant qu'entre standard (descripteur de
fichier 0) si n n'est pas spcifi.
Le format gnral des redirections d'entre est :
[n]<mot
Redirection de sortie
Une redirection de sortie conduit l'ouverture en criture du fichier
dont le nom rsulte du dveloppement du mot avec comme descripteur de
fichier n ou en tant que sortie standard (descripteur de fichier 1) si
n n'est pas spcifi. Si le fichier n'existe pas, il est cr. S'il exis-
tait dj, sa taille est ramene 0.
Le format gnral des redirections de sortie est le suivant :
[n]>mot
Si l'oprateur de redirection est > et si l'option noclobber de la com-
mande interne set est active, la redirection chouera si le fichier dont
le nom rsulte du dveloppement du mot existe et est un fichier normal.
Si l'oprateur de redirection est >| ou l'oprateur > avec l'option
noclobber de la commande interne set n'est pas active, la redirection
sera tente mme si le fichier dont le nom rsulte du dveloppement du mot
existe.
Ajout d'une sortie redirige
La redirection de la sortie de cette faon conduit l'ouverture du
fichier dont le nom rsulte du dveloppement du mot pour ajouter au
descripteur de fichier n ou la sortie standard (descripteur de fichier
1) si n n'est pas spcifi. Si le fichier n'existe pas, il est cr.
Le format gnral pour les sorties avec ajout est :
[n]>>mot
Redirection de la sortie standard et de la sortie d'erreur standard
Bash permet la redirection simultane de la sortie standard (descripteur
1) et de la sortie d'erreur standard (descripteur 2), dans un fichier
dont le nom est le rsultat du dveloppement du mot avec cette construc-
tion.
Il y a deux formes pour rediriger les sortie standard et sortie
d'erreur standard :
&>mot
et
>&mot
La premire des deux formes est prfre. Ceci est smantiquement quivalent
>mot 2>&1
Document en ligne
Ce type de redirection commande l'interprteur de lire son entre de la
source courante jusqu' ce qu'il voie une ligne contenant seulement le
mot prvu (sans blancs finaux). Toutes les lignes lues jusqu' ce point
sont ensuite utilises comme l'entre standard pour une commande.
Le format des documents en ligne est le suivant :
<<[-]mot
document_en_ligne
dlimiteur
Il n'y a ni dveloppement des paramtres, ni substitution de commande, ni
dveloppement arithmtique, ni dveloppement des chemins d'effectu sur le
mot. Si un quelconque des caractres du mot est protg, dlimiteur est le
rsultat de la suppression des protections sur mot et les lignes du doc-
ument en ligne ne sont pas dveloppes. Si le mot n'est pas protg, toutes
les lignes du document en ligne sont soumises au dveloppement des
paramtres, la substitution de commande et au dveloppement arithmtique.
Dans ce dernier cas, la suite de caractres \<saut de ligne> est ignore
et \ doit tre utilise pour protger les caractres \, $ et `.
Si l'oprateur de redirection est <<-, alors les tabulations en tte de
chaque ligne sont supprimes de l'entre, y compris dans la ligne con-
tenant dlimiteur. Ceci permet d'indenter de faon naturelle les docu-
ments en ligne au sein des scripts.
Chanes en ligne
Une variante aux documents en ligne, le format est :
<<<mot
Le mot est dvelopp et fourni la commande sur son entre standard.
Ddoublement de descripteur de fichier
L'oprateur de redirection
[n]<&mot
permet de dupliquer les descripteurs de fichiers en entre. 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'entre standard (descripteur 0) est
utilise.
L'oprateur
[n]>&mot
est utilis de faon similaire pour dupliquer les descripteurs de sortie.
Si n n'est pas explicit, la sortie standard (descripteur 1) est
utilise. Si les chiffres du mot ne correspondent pas un descripteur en
criture, une erreur de redirection se produit. Dans le cas particulier
o n est omis et o mot ne se dveloppe pas en un ou plusieurs chiffres,
les sorties standard et d'erreur standard sont toutes deux rediriges
comme dcrit prcdemment.
Dplacement de descripteurs de fichiers
L'oprateur de redirection
[n]<&chiffre-
dplace le descripteur de fichier chiffre vers le descripteur de fichier
n ou sur l'entre standard (descripteur de fichier 0) si n n'est pas
spcifi. chiffre est ferm aprs avoir t dupliqu en n.
De la mme faon, l'oprateur de redirection
[n]>&chiffre-
dplace 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
spcifi.
Ouverture en Lecture/criture d'un descripteur de fichier
L'oprateur de redirection
[n]<>mot
conduit l'ouverture du fichier dont le nom rsulte du dveloppement 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.
Les alias permettent de substituer une chane un mot lorsqu'il est
utilis comme premier mot d'une commande simple. L'interprteur gre une
liste d'alias qui peuvent tre crs et dtruits avec les commandes
internes alias et unalias (voir plus bas COMMANDES INTERNES DE L'INTER-
PRTEUR ). L'interprteur vrifie si le premier mot de chaque commande
simple, si non protg, est un alias. Si c'est le cas, ce mot est remplac
par le texte de l'alias. Les caractres /, $, ` et = et tout mtacaractre
de l'interprteur ou caractre de protection dcrits plus haut ne peuvent
pas apparatre dans un nom d'alias. Le texte de remplacement peut con-
tenir toute entre correcte pour l'interprteur, y compris les mtacarac-
tres de l'interprteur. L'interprteur vrifie si le premier mot du texte
de remplacement est son tour un alias, mais un mot identique un alias
en cours de dveloppement n'est pas dvelopp une seconde fois. Ceci sig-
nifie qu'on peut, par exemple, crer un alias ls valant ls -F et bash
n'essaiera pas de dvelopper rcursivement le texte de substitution. Si
le dernier caractre de la valeur de l'alias est un blanc, alors le
prochain mot de commande suivant l'alias connatra aussi le dveloppement
d'alias.
Les alias sont crs et affichs avec la commande alias et supprims avec
la commande unalias.
Il n'existe pas de mcanisme permettant d'utiliser des arguments dans le
texte de remplacement. S'ils sont ncessaires, une fonction de l'inter-
prteur devrait tre utilise (voir FONCTIONS plus bas).
Les alias ne sont pas dvelopps quand l'interprteur n'est pas interactif
sauf si l'option expand_aliases de l'interprteur est cre par la com-
mande shopt (voir plus bas la description de shopt dans COMMANDES
INTERNES DE L'INTERPRTEUR ).
Les rgles concernant la dfinition et l'utilisation des alias sont un
peu confuses. Bash lit toujours au moins une ligne d'entre compltement
avant d'excuter une quelconque commande de cette ligne. Les alias sont
traits lorsque la commande est lue et non pas lorsqu'elle est excute.
Ainsi, une dfinition d'alias apparaissant sur la mme ligne qu'une autre
commande ne prend pas effet avant la lecture de la prochaine ligne
d'entre. Autrement dit, une commande place la suite d'une dfinition
d'alias, sur la mme ligne ne sera pas affecte par cet alias. Ce com-
portement est galement important lors de l'excution des fonctions. Les
alias sont traits lorsque la dfinition de la fonction est lue et non
pas lors de l'excution de cette fonction. Ainsi des alias dfinis dans
une fonction ne sont pas disponibles avant la fin de l'excution de la
fonction. Pour plus de tranquillit, placez toujours les dfinitions
d'alias sur des lignes isoles et n'utilisez jamais la commande alias
dans les commandes composes.
Pour quasiment chaque usage, les alias sont surpasss par les fonctions
de l'interprteur.
Une fonction de l'interprteur, dfinie comme dcrit plus haut, dans GRAM-
MAIRE DE L'INTERPRTEUR, conserve une suite de commandes pour excution
ultrieure. Lorsque le nom d'une fonction de l'interprteur est utilise
comme un simple nom de commande, la liste des commandes associes ce nom
de fonction est excute. Les fonctions sont excutes dans le contexte de
l'interprteur courant ; aucun nouveau processus n'est cr pour les
interprter ( la diffrence d'un script). Lorsqu'une fonction est excute,
les arguments de la fonction deviennent les paramtres positionnels pen-
dant son excution. Le paramtre spcial # est mis jour en consquence. Le
paramtre spcial 0 reste inchang. Le premier lment de la variable FUNC-
NAME est mis au nom de la fonction pendant son excution. Tous les
autres aspects de l'environnement d'excution de l'interprteur sont
identiques entre la fonction et le contexte d'appel, l'exception que
les captures de DEBUG et RETURN (voir plus bas la description de la
commande interne trap dans COMMANDES INTERNES DE L'INTERPRTEUR ) ne
sont pas hrites, moins que la fonction ait l'attribut trace de posi-
tionn (voir plus bas la description de la commande interne declare) ou
que l'option d'interprteur -o functrace ait t active avec la commande
interne set (auquel cas toutes les fonctions hriteront des captures de
DEBUG et RETURN).
Les variables locales d'une fonction peuvent tre dclares avec la com-
mande interne local. Autrement, les variables et leurs valeurs sont
partages entre la fonction et son appelant.
Si la commande interne return est excute dans une fonction, celle-ci se
termine et l'excution reprend avec la commande suivant l'appel de fonc-
tion. Toute commande associe la capture de RETURN est excute avant que
l'excution reprenne. Quand une fonction se termine, les paramtres posi-
tionnels et le paramtre spcial # reprennent les valeurs qu'ils avaient
avant l'appel de fonction.
Les noms des fonctions et leurs dfinitions peuvent tre affichs avec
l'option -f des commandes internes declare ou typeset. Les options -F
de declare ou typeset n'afficheront que les noms des fonctions (et fac-
ultativement le fichier source et le numro de ligne, si l'option
d'interprteur extdebug est active). Les fonctions peuvent tre exportes
avec l'option -f de la commande interne export, afin d'tre automatique-
ment dfinies dans les sous-interprteurs. Une dfinition de fonction peut
tre supprime avec l'option -f de la commande interne unset. Remarquez
que les fonctions et variables de l'interprteur de mme nom pourront
induire plusieurs lments de mmes noms dans l'environnement pass aux
enfants de l'interprteur. Un soin particulier doit tre pris dans les
cas o cela peut conduire un problme.
Les fonctions peuvent tre rcursives. Aucune limite n'est impose quant
au nombre d'appels rcursifs.
L'interprteur permet, dans certaines circonstances, l'valuation
d'expressions arithmtiques (voir les commandes internes let et declare
ainsi que Dveloppement arithmtique). L'valuation est effectue en util-
isant des entiers de longueur fixe, sans vrification du dbordement.
Nanmoins, la division par 0 est capture et marque comme une erreur. Les
oprateurs, leur priorit, associativit et leur valeur sont identiques
ceux du langage C. La liste suivante d'oprateurs est entre oprateurs de
niveaux de priorit identiques. Les niveaux sont dcrits par ordre de
priorit dcroissante.
id++ id--
post-incrment et post-dcrment de variables
++id --id
pr-incrment et pr-dcrment de variables
- + plus et moins unaires
! ~ ngations logique et binaire
** exponentiation
* / % multiplication, division, reste
+ - addition, soustraction
<< >> dcalage arithmtique gauche et droite
<= >= < >
comparaisons
== != galit et diffrence
& ET binaire
^ OU exclusif binaire
| OU binaire
&& ET logique
|| OU logique
expr?expr:expr
oprateur conditionnel
= *= /= %= += -= <<= >>= &= ^= |=
affectations
expr1 , expr2
virgule
On peut utiliser les variables de l'interprteur comme oprandes, le
dveloppement des paramtres tant effectu avant l'valuation arithmtique.
Dans une expression, les variables de l'interprteur peuvent galement
tre rfrences par leur nom, sans utiliser la syntaxe de dveloppement des
paramtres. Une variable d'interprteur qui est vide ou inexistante est
value 0 lorsqu'on y accde par son nom sans utiliser la syntaxe de
dveloppement des paramtres. La valeur d'une variable est value comme
une expression arithmtique lorsqu'on y accde ou lorsqu'une variable,
qui a vu son attribut integer (entier) positionn en utilisant declare
-i, se voit affecter une valeur. Une valeur vide est value 0. Une vari-
able d'interprteur n'a donc pas besoin d'avoir son attribut integer de
positionn pour tre utilisable dans un calcul.
Les constantes commenant par un 0 sont interprtes comme des nombres
octaux. Un entte 0x ou 0X indique une valeur hexadcimale. Sinon, les
nombres ont la forme [base#]n ou la base est un nombre dcimal entre 2
et 64 reprsentant la base arithmtique et n est un nombre exprim dans
cette base. Si la base# est omise, la base 10 est utilise. Les chiffres
suprieurs 9 sont reprsents par les lettres minuscules, les lettres
majuscules, le @ et le _, dans cet ordre. Si la base est infrieure ou
gale 36 les minuscules et les majuscules peuvent tre utilises de faon
interchangeable pour reprsenter les nombres entre 10 et 35.
Les oprateurs sont valus par ordre de priorit. Les sous-expressions
entre parenthses sont values en premier, ce qui permet de surpasser les
rgles de priorit ci-dessus.
Les conditions sont utilises par la commande compose [[ et les comman-
des internes test et [ pour vrifier l'tat d'un fichier et effectuer des
comparaisons arithmtiques ou sur des chanes. Les conditions se forment
partir des primitives unaires ou binaires suivantes. Si un quelconque
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 suiv-
ent les liens symboliques et oprent sur la cible du lien plutt que sur
le lien lui-mme.
Voir la description de la commande interne test (paragraphe COMMANDES
INTERNES DE L'INTERPRTEUR plus bas) pour la gestion des paramtres
(c'est--dire des paramtres manquants).
-a fichier
Vrai si le fichier existe.
-b fichier
Vrai si le fichier existe et est un fichier spcial bloc.
-c fichier
Vrai si le fichier existe et est un fichier spcial caractre.
-d fichier
Vrai si le fichier existe et est un rpertoire.
-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 de mis.
-h fichier
Vrai si le fichier existe et est un lien symbolique.
-k fichier
Vrai si le fichier existe et a son bit sticky de mis.
-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 fd Vrai si le descripteur de fichier fd est ouvert et se rapporte
un terminal.
-u fichier
Vrai si le fichier existe et a son bit Set-UID de mis.
-w fichier
Vrai si le fichier existe et est accessible en criture.
-x fichier
Vrai si le fichier existe et est excutable.
-O fichier
Vrai si le fichier existe et appartient l'UID effectif de
l'utilisateur.
-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.
-S fichier
Vrai si le fichier existe et est une socket .
-N fichier
Vrai si le fichier existe et a t modifi depuis sa dernire lec-
ture.
fichier_1 -nt fichier_2
Vrai si le fichier_1 est plus rcent que le fichier_2 (selon les
dates de dernire modification) ou si fichier_1 existe et non
fichier_2.
fichier_1 -ot fichier_2
Vrai si le fichier_1 est plus vieux que le fichier_2 ou si
fichier_2 existe et non pas fichier_1.
fichier_1 -ef fichier_2
Vrai si le fichier_1 et le fichier_2 se rapportent au mme
priphrique et ont les mmes numros d'i-noeuds.
-o nom_opt
Vrai si l'option d'interprteur nom_opt est active. Consulter la
liste des options plus bas dans la description de l'option -o de
la commande interne set.
-z chane
Vrai si la longueur de la chane est nulle.
chane
-n chane
Vrai si la longueur de la chane est non nulle.
chane_1 == chane_2
Vrai si les deux chanes sont gales. Le symbole = peut servir
remplacer == pour une stricte conformit POSIX.
chane_1 != chane_2
Vrai si les deux chanes sont diffrentes.
chane_1 < chane_2
Vrai si chane_1 se trouve avant chane_2 dans l'ordre lexi-
cographique des paramtres linguistiques rgionaux courants.
chane_1 > chane_2
Vrai si chane_1 se trouve aprs chane_2 dans l'ordre lexi-
cographique des paramtres linguistiques rgionaux courants.
arg1 OP arg2
OP est l'un des oprateurs suivants -eq, -ne, -lt, -le, -gt ou
-ge. Ces oprateurs arithmtiques binaires renvoient vrai si arg1
est respectivement gal, diffrent, infrieur, infrieur ou gal,
suprieur, suprieur ou gal arg2. arg1 et arg2 peuvent tre des
entiers positifs ou ngatifs.
Lors de l'excution d'une commande simple, l'interprteur effectue les
dveloppements, affectations et redirections suivants de gauche droite.
1. Les mots que l'analyseur a repr comme affectations de variables
(ceux qui prcdent le nom de la commande) et les redirections
sont conserves pour un traitement ultrieur.
2. Les mots qui ne sont ni des affectations de variables ni des
redirections sont dvelopps. S'il reste des mots aprs le
dveloppement, le premier mot est considr comme le nom d'une com-
mande et les suivants comme ses arguments.
3. Les redirections sont effectues comme dcrit plus haut dans REDI-
RECTIONS.
4. Le texte suivant le = dans chaque affectation de variable est
sujet au dveloppement du tilde, des paramtres, la substitution
de commande, au dveloppement arithmtique et la suppression des
protections avant d'tre affect la variable.
Si aucun nom de commande ne rsulte des prcdentes oprations, les affec-
tations de variables modifient l'environnement courant de l'interpr-
teur. Sinon les variables sont ajoutes l'environnement de la commande
excute et n'affectent pas l'environnement de l'interprteur courant. Si
une quelconque des tentatives d'affectation concerne une variable en
lecture seule, une erreur se produit et la commande termine avec un tat
diffrent de zro.
Si aucun nom de commande n'est obtenu, les redirections sont effectues
mais ne modifient pas l'environnement de l'interprteur courant. Une
erreur de redirection conduit la terminaison de la commande avec un
tat diffrent de zro.
S'il reste un nom de commande aprs le dveloppement, l'excution a lieu
comme dcrit plus bas. Sinon la commande termine. Si l'un des dveloppe-
ments contient une substitution de commande, l'tat final de la commande
est l'tat final de la dernire substitution de commande effectue. S'il
n'y avait aucune substitution de commande, la commande termine avec un
tat de zro.
Aprs le dcoupage de la ligne de commande en mots, si le rsultat est une
commande simple suivie d'une liste facultative d'arguments, les actions
suivantes sont effectues.
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'interprteur
de ce nom, elle est appele comme nous l'avons vu plus haut dans FONC-
TIONS. Si le nom n'est pas celui d'une fonction, l'interprteur le
recherche dans la liste des commandes internes. Si une correspondance
est trouve, cette commande interne est appele.
Si le nom n'est ni celui d'une fonction de l'interprteur, ni celui
d'une commande interne et s'il ne contient pas de barre oblique, bash
va chercher dans chacun des lments de PATH un rpertoire contenant un
fichier excutable du nom dsir. Bash utilise une table de hachage pour
mmoriser les chemins d'accs complets aux fichiers excutables (voir plus
bas la commande hash dans COMMANDES INTERNES DE L'INTERPRTEUR ). Une
recherche complte dans les rpertoires du PATH n'est effectue que si la
commande ne se trouve pas dans la table de hachage. Si la recherche est
infructueuse, l'interprteur affiche un message d'erreur et renvoie un
tat final de 127.
Si la recherche russit ou si le nom de la commande contient une ou
plusieurs barres obliques, l'interprteur excute le programme demand
dans un environnement d'excution distinct. L'argument 0 est mis au nom
indiqu et les ventuels arguments restants de la commande sont mis aux
arguments indiqus.
Si cette excution choue parce que le programme n'est pas un excutable
et si le fichier n'est pas un rpertoire, il est pris pour un script, un
fichier contenant des commandes d'interprteur. Un sous-interprteur est
alors cr pour excuter ce script. Ce sous-interprteur se rinitialisera
lui-mme, comme si un nouvel interprteur avait t appel pour excuter le
script, la diffrence qu'il continuera mmoriser l'emplacement des com-
mandes connues de son parent (voir hash plus bas dans COMMANDES
INTERNES DE L'INTERPRTEUR ).
Si le programme est un fichier commenant par #!, le reste de la premire
ligne indique un interprte pour ce programme. L'interprteur se chargera
d'excuter cet interprte spcifi sur les systmes d'exploitation qui ne
grent pas eux-mmes ce format d'excutable. Les arguments de l'interprte
consistent en un seul argument facultatif fourni sur la premire ligne
du fichier la suite du nom de l'interprte, suivi du nom du programme,
suivi des arguments de la commande s'il y en a.
L'interprteur fournit un environnement d'excution consistant en
l'ensemble des lments suivants :
+o les fichiers ouverts hrits par l'interprteur son appel et modi-
fis par les redirections fournies la commande interne exec
+o le rpertoire de travail courant comme mis par cd, pushd ou popd
ou hrit par l'interprteur son appel
+o le masque de cration de fichier comme mis par umask ou hrit du
parent de l'interprteur
+o captures courantes mises par trap
+o les paramtres de l'interprteur sont mis par des affectations de
variables ou avec la commande interne set ou hrits de l'environ-
nement du parent de l'interprteur
+o les fonctions de l'interprteur dfinies lors de l'excution ou
hrites de l'environnement du parent de l'interprteur ;
+o les options actives l'appel (par dfaut ou avec les arguments de
ligne de commande) ou par set ;
+o options actives par shopt ;
+o les alias de l'interprteur dfinies par la commande alias ;
+o les ID des divers processus, y compris ceux des tches en
arrire-plan, la valeur de $$ et la valeur de $PPID
Lorsqu'une commande autre qu'une commande interne ou une fonction de
l'interprteur doit tre excute, elle est appele dans un environnement
d'excution spar constitu de ce qui suit. Sauf indication contraire, les
valeurs sont hrites de l'environnement de l'interprteur.
+o les fichiers ouverts de l'interprteur, ainsi que toutes modifi-
cations et ajouts spcifis par les redirections de la commande ;
+o le rpertoire de travail courant ;
+o le masque de cration de fichiers ;
+o les variables et les fonctions de l'interprteur marques pour
l'exportation, ainsi que les variables exportes spcialement pour
la commande ;
+o les captures interceptes par l'interprteur sont rinitialises aux
valeurs hrites de l'interprteur parent et les captures ignores
par l'interprteur restent ignores
Une commande appele dans un environnement distinct ne peut pas affecter
l'environnement d'excution de l'interprteur.
Les substitutions de commande, les commandes groupes entre parenthses
et les commandes asynchrones sont appeles dans un environnement de
sous-interprteur qui est une copie de celui de l'interprteur, sauf que
les captures interceptes par l'interprteur sont rinitialises aux
valeurs que l'interprteur avait hrites de son parent son appel. Les
commandes internes appeles dans une conduite sont aussi excutes dans un
environnement de sous-interprteur. Les modifications apportes l'envi-
ronnement d'une sous-interprteur n'affectent aucunement l'environnement
d'excution de l'interprteur.
Si une commande est suivie par un & et que le contrle des tches n'est
pas actif, l'entre standard par dfaut de la commande est le fichier
vide /dev/null. Sinon, la commande appele hrite des descripteurs de
fichiers de l'interprteur appelant comme modifis par les redirections.
Quand un programme est appel, il reoit un tableau de chanes que l'on
appelle environnement. Il s'agit d'une liste de couples nom-valeur, de
la forme nom=valeur.
L'interprteur fournit plusieurs faons de grer l'environnement. Au dmar-
rage, l'interprteur analyse son propre environnement et cre un paramtre
pour chaque nom trouv, en le marquant comme exportable vers les proces-
sus enfants. Les commandes excutes hritent de cet environnement. Les
commandes export et declare -x permettent d'ajouter ou de supprimer des
paramtres ou des fonctions de l'environnement. Si la valeur d'un
paramtre de l'environnement est modifie, la nouvelle valeur devient une
partie de l'environnement et elle remplace l'ancienne. L'environnement
hrit par toute commande excute est l'environnement initial de l'inter-
prteur, dont les valeurs peuvent tre modifies dans l'interprteur, moins
les lments supprims par la commande unset, plus les lments ajouts par
les commandes export et declare -x.
L'environnement d'une commande simple ou d'une fonction peut tre aug-
ment temporairement, en la faisant prcder des affectations de
paramtres, comme nous l'avons vu plus haut dans PARAMTRES. Ces affec-
tations ne concernent que l'environnement vu par cette commande.
Si l'option -k est mise (voir plus bas la commande interne set), alors
toutes les affectations de paramtres sont places dans l'environnement
d'une commande excute et non seulement celles qui prcdent son nom.
Quand bash appelle une commande externe, la variable _ est mise au
chemin d'accs complet cette commande et elle est transmise dans
l'environnement.
Du point de vue de l'interprteur, une commande qui termine avec tat
final de zro a russi. Un tat final de zro indique le succs. Un tat
final diffrent de zro indique un chec. Quand une commande termine par
un signal mortel N, bash utilise la valeur 128+N comme tat final.
Si une commande n'est pas trouve, le processus enfant cr pour l'excuter
renvoie un tat de 127. Si une commande est trouve mais pas excutable,
la valeur renvoye est 126.
Si une commande choue cause d'une erreur survenue lors d'un dveloppe-
ment ou des redirections, l'tat final est strictement plus grand que
zro.
Les commandes internes renvoient un tat de 0 (vrai) si russies et une
valeur diffrente de zro (faux) si une erreur se produit pendant leur
excution. Toutes les commandes internes renvoient un tat final de 2
pour indiquer un usage incorrect.
Bash lui-mme renvoie l'tat final de la dernire commande excute, moins
qu'une erreur de syntaxe se produise, auquel cas il termine avec une
valeur diffrente de zro. Voir aussi plus bas la commande interne exit.
Quand bash fonctionne de faon interactive, en l'absence de toute cap-
ture, il ignore SIGTERM (c'est ainsi que kill 0 ne tue pas un interpr-
teur interactif) et SIGINT est intercept et gr (c'est ainsi que la com-
mande interne wait est interruptible). Dans tous les cas, bash ignore
SIGQUIT. Si le contrle des tches est actif, bash ignore SIGTTIN, SIGT-
TOU et SIGTSTP.
Les commandes externes lances par bash ont les gestionnaires de signaux
mis aux valeurs hrites par l'interprteur de son parent. Quand le con-
trle des tches n'est pas actif, les tches en arrire-plan ignorent les
signaux SIGINT et SIGQUIT en plus des gestionnaires hrits. Les comman-
des excutes en tant que rsultat d'une substitution de commande ignorent
les signaux de contrle de tches mis par le clavier SIGTTIN, SIGTTOU et
SIGTSTP.
Par dfaut, l'interprteur termine la rception de SIGHUP. Avant de ter-
miner, un interprteur interactif renvoie le SIGHUP
toutes les tches en cours ou suspendues. Les tches suspendues reoivent
aussi SIGCONT pour s'assurer qu'elles reoivent bien le SIGHUP. Pour
empcher l'interprteur d'envoyer le signal une tche particulire, elle
devrait tre supprime de la table des tches avec la commande interne
disown (voir plus bas COMMANDES INTERNES DE L'INTERPRTEUR ) ou marque
comme exempte de SIGHUP en utilisant disown -h.
Si l'option d'interprteur huponexit a t mise avec la fonction shopt,
bash envoie un signal SIGHUP
toutes les tches lorsqu'un interprteur de commandes de connexion
interactif termine.
Lorsque bash attend qu'une commande se termine et qu'il reoit un signal
pour lequel une capture a t mise, la capture ne sera pas excute tant
que la commande n'est pas termine. Lorsque bash attend la fin d'une
commande asynchrone par la commande interne wait, la rception d'un sig-
nal pour lequel une capture a t mise conduira un retour immdiat de la
commande interne wait avec un tat final suprieur 128, la suite de
quoi la capture est immdiatement excute.
Le contrle des tches se rfre la capacit de suspendre (suspend) slec-
tivement l'excution d'un processus et de la reprendre (resume)
ultrieurement. L'utilisateur bnficie gnralement de cette possibilit
grce l'action conjointe du pilote de terminal du systme et de bash.
L'interprteur associe une tche chaque conduite. Il maintient une table
des tches en cours d'excution, cette table pouvant tre affiche avec la
commande jobs. Quand bash lance une tche de faon asynchrone (en
arrire-plan), il affiche une ligne qui ressemble :
[1] 25647
Cette ligne indique que la tche est la tche numro 1 et que le PID du
dernier processus dans la conduite associe cette tche est 25647. Tous
les processus d'une mme conduite font partie de la mme tche. Bash
utilise la notion de tche comme base du contrle des tches.
Pour faciliter l'implmentation d'une interface utilisateur pour le con-
trle de tches, le systme introduit la notion d'ID de groupe de proces-
sus associs un terminal. Les membres de ce groupe de processus (pro-
cessus dont le GID est gal au Process Group ID du terminal courant)
reoivent les signaux mis par le clavier comme SIGINT. Ces processus
sont dits tre au premier plan. Les processus en arrire-plan sont ceux
dont le Process-GID diffre de celui du terminal ; ils sont indiffrents
aux signaux mis par le clavier. Seuls les processus au premier plan
peuvent lire depuis le terminal ou y crire. Les processus en
arrire-plan qui tentent une lecture (ou une criture) dans le terminal
reoivent un signal SIGTTIN (SIGTTOU) mis par le pilote du terminal,
qui, sauf interception, suspend le processus.
Si le systme d'exploitation sur lequel bash fonctionne permet le con-
trle des tches, bash fournit des outils pour l'utiliser. La frappe d'un
caractre de suspension (gnralement ^Z, Contrle-Z) pendant l'excution
d'un processus conduit la suspension de celui-ci et redonne la main
bash. La frappe d'un caractre de suspension diffre (gnralement ^Y, Con-
trle-Y) conduira la suspension du processus au moment o il tentera de
lire des saisies depuis le terminal et la main reviendra bash. L'util-
isateur peut alors manipuler l'tat de cette tche en utilisant la com-
mande bg (background = arrire-plan) pour en continuer l'excution en
arrire-plan, la commande fg (foreground = premier plan) pour la contin-
uer au premier plan ou encore la commande kill pour la tuer. Un ^Z
s'applique immdiatement et a pour effet de bord d'liminer les sorties
et saisies en attente.
Il y a plusieurs faons de se rapporter une tche. Le caractre % intro-
duit un nom de tche. On peut se rapporter la tche numro n comme %n. On
peut galement se rapporter une tche en utilisant un prfixe du nom
utilise pour le lancer ou une sous-chane qui apparat dans sa ligne de
commande. Par exemple, %ce se rapporte une tche suspendue nomme ce. Si
ce prfixe correspond plusieurs tches, bash signale une erreur.
Utiliser %?ce, d'un autre ct, se rapporte toute tche contenant la
chane ce dans sa ligne de commande. Si la sous-chane correspond
plusieurs tches, bash signale une erreur. Les symboles %% et %+ se rap-
portent la notion de tche courante de l'interprteur, c'est--dire la
dernire tche suspendue alors qu'elle tait au premier plan ou dmarre en
arrire-plan. La tche prcdente peut tre dsigne en utilisant %-. Dans les
affichages se rapportant aux tches (par exemple la sortie de la com-
mande jobs), la tche courante est toujours annote d'un + et la tche
prcdente d'un -. Un simple % (non accompagn de spcification de tche) se
rapporte galement la tche courante.
Il suffit de nommer une tche pour la ramener au premier plan : %1 est
synonyme de fg %1 et ramne la tche 1 de l'arrire-plan vers le premier
plan. De mme, %1 & reprend la tche 1 en arrire-plan, de faon quiva-
lente bg %1 .
L'interprteur est immdiatement prvenu lorsqu'une tche change d'tat.
Normalement bash attend d'tre prt afficher son interprteur avant de
signaler des changements dans l'tat des tches, afin de ne pas inter-
rompre toute autre sortie. Si l'option -b de la commande interne set
est active, bash signalera de telles modifications immdiatement. Toute
capture sur SIGCHLD est excute pour chaque enfant qui termine.
Si une tentative est faite de terminer bash alors que des tches sont
suspendues, l'interprteur affiche un message d'avertissement. La com-
mande jobs peut alors tre utilise pour examiner leur tats. Si une
deuxime tentative est faite de terminer sans commande intercalaire,
l'interprteur n'affiche aucun autre avertissement et les tches sus-
pendues sont termines.
Quand il est excut de faon interactive, bash affiche l'invite de base
PS1 ds qu'il est prt lire une commande et l'invite secondaire PS2
quand il a besoin de plus de saisies pour excuter une commande. Bash
permet de personnaliser ces chanes d'invite, en insrant un certain nom-
bre de suites de caractres spciaux d'chappement par des contre-obliques
qui sont dcods comme suit :
\a un caractre ASCII d'alarme (07)
\d la date au format Jour_de_la_semaine Mois Quantime (par
exemple : Tue May 26 )
\D{format}
le format est pass strftime(3) et le rsultat est insr
dans la chane de l'invite ; un format vide implique une
reprsentation du temps spcifique aux paramtres linguis-
tiques rgionaux. Les accolades sont ncessaires.
\e un caractre d'chappement ASCII (033)
\h le nom de la machine, jusqu'au premier point .
\H le nom de la machine
\j le nombre de tches actuellement gres par l'interprteur
\l le nom de base du nom de priphrique de terminal de
l'interprteur
\n saut de ligne
\r retour chariot (carriage return)
\s le nom de l'interprteur, c'est--dire le nom de base de $0
(la portion suivant l dernire 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 sur 12 heures au format HH:MM am/pm
\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 numro de version complet (avec niveau de correctifs)
de bash, (par exemple, 2.00.0)
\w le rpertoire de travail courant, avec $HOME abrg en tilde
( ~ )
\W le nom de base du rpertoire de travail courant, avec
$HOME abrg en tilde ( ~ )
\! le numro d'historique de la commande
\# le numro de la commande
\$ # si l'UID effectif est 0, $ sinon
\nnn le caractre de code octal nnn
\\ une contre-oblique
\[ dbute une suite de caractres non imprimables, qui peuvent
tre utiliss pour inclure une suite de caractres de con-
trle du terminal dans l'interprteur
\] fin d'une suite de caractres non imprimables
Le numro de commande et le numro d'historique sont gnralement
diffrents : le numro d'historique d'une commande correspond sa posi-
tion dans la file d'historique qui peut contenir des commandes relues
depuis cette liste (voir HISTORIQUE plus bas), alors que le numro de
commande est simplement une position dans la suite de commandes excutes
depuis le dbut de la session d'interprteur courante. Aprs que la chane
a t dcode, elle est soumise au dveloppement des paramtres, la substi-
tution de commande, au dveloppement arithmtique au dcoupage des mots et
la suppression des protections, selon la valeur de l'option d'interpr-
teur promptvars (voir plus bas la description de shopt dans COMMANDES
INTERNES DE L'INTERPRTEUR ).
C'est la bibliothque qui gre la lecture des saisies lors des sessions
interactives de l'interprteur, moins que l'option --noediting ne soit
indique l'appel de l'interprteur. Par dfaut 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 arrter l'dition de ligne
aprs le dmarrage de l'interprteur, utiliser l'option +o emacs ou +o vi
de la commande interne set (voir plus bas COMMANDES INTERNES DE
L'INTERPRTEUR ).
Notation readline
Dans ce paragraphe on utilisera la notation la emacs pour indiquer
les frappes de touches. Les touches Contrle sont notes C-touche, par
exemple C-n signifie Contrle-N. De mme, les touches Mta sont notes par
M-touche, ainsi M-x signifie Mta-X. (Sur les claviers sans touches Mta,
M-x signifie ESC x, c'est--dire presser la touche d'chappement puis la
touche x. Cela fait de ESC le prfixe mta. La combinaison M-C-x signifie
ESC-Contrle-x ou encore presser la touche d'chappement puis maintenez
la touche Contrle enfonce tout en pressant la touche x.)
Les commandes readline peuvent recevoir des arguments numriques, qui
fonctionnent en rgle gnrale comme compteurs de rptitions. Parfois,
cependant, c'est le signe de l'argument qui est significatif. L'utili-
sation d'un argument ngatif pour une commande agissant dans un sens
donn (par ex. kill-line) conduit cette commande agir dans la direction
oppose. Les commandes dont le comportement avec les arguments diffre de
ceci sont indiques plus bas.
Lorsqu'une commande est indique comme dtruisant du texte, le texte
effac est en fait sauvegard pour une ventuelle rcupration ultrieure
(yanking). Il est conserv dans un tampon circulaire. Les suppressions
successives conduisent l'accumulation du texte en un seul bloc qui
peut tre rcupr en une fois. Les commandes non destructrices sparent les
blocs de textes dans le tampon circulaire.
Initialisation de readline
Readline est personnalis en mettant des commandes dans un fichier
d'initialisation (le fichier inputrc). Le nom de ce fichier est pris
dans la variable de l'interprteur INPUTRC. Si cette variable est inex-
istante, le nom par dfaut est ~/.inputrc. Lorsqu'un programme utilisant
la bibliothque readline dmarre, le fichier d'initialisation est lu et
les raccourcis clavier et les variables sont mis en place. Il n'y a que
quelques constructions lmentaires de possibles dans le fichier d'ini-
tialisation de readline. Les lignes blanches sont ignores. Les lignes
commenant par # sont des commentaires. Les lignes commenant par $
indiquent des constructions conditionnelles. Les autres lignes
indiquent des raccourcis clavier et des paramtrages de variables.
Les raccourcis clavier par dfaut peuvent tre modifis par un fichier
inputrc. D'autres programmes qui utilisent cette bibliothque peuvent
ajouter leurs propres commandes et raccourcis.
Par exemple, en plaant
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 caractres symboliques suivants sont accepts : RUBOUT, DEL, ESC,
LFD, NEWLINE, RET, RETURN, SPC, SPACE et TAB.
En plus des noms de commandes, readline permet d'associer une touche
une chane de caractres qui sera insre lorsque la touche est presse (une
macro).
Raccourcis clavier readline
La syntaxe de dfinition des raccourcis clavier dans le fichier inputrc
est simple. Tout ce qui est ncessaire 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 spcifis de l'une des deux faons : comme
un nom de touche symbolique, ventuellement prcd des prfixes 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: "> output"
Dans l'exemple ci-dessus, C-u est associ la fonction universal-argu-
ment, M-DEL la fonction backward-kill-word et C-o l'excution de la
macro exprime dans la partie gauche (c'est--dire, insrer le texte ``>
output'' sur la ligne).
Avec la seconde forme, "touches":nom_de_fonction ou macro, touches
diffre de touche ci-dessus en ce que les chanes notant une suite com-
plte de touches peut tre spcifie en plaant la suite entre guillemets
doubles. Certaines suites de touches d'chappement dans le style GNU
Emacs peuvent tre utilises, comme dans l'exemple suivant, mais les noms
de caractres 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-argu-
ment, C-x C-r la fonction re-read-init-file et ESC [ 1 1 ~ l'inser-
tion du texte ``Function Key 1''.
Le jeu complet des suites de caractres d'chappements du style GNU Emacs
est
\C- prfixe Contrle
\M- prfixe Mta
\e caractre d'chappement
\\ contre-oblique
\" un guillemet " littral
\' un guillemet ' littral
En plus des suites de caractres d'chappement dans le style GNU Emacs,
un second jeu de suites de caractres d'chappement par contre-obliques
est disponible :
\a alerte (alarme)
\b effacement arrire (backspace)
\d effacement
\f saut de page (form feed)
\n saut de ligne
\r retour chariot (carriage return)
\t tabulation horizontale
\v tabulation verticale
\nnn le caractre 8 bits dont la valeur octale est nnn (de un
trois chiffres)
\xHH le caractre 8 bits dont la valeur hexadcimale est HH (un
deux symboles hexadcimaux)
Lorsqu'on saisit le texte d'une macro, il faut utiliser des guillemets
simples ou des doubles pour indiquer la dfinition de la macro. Les
textes non protgs sont considrs comme des noms de fonctions. Dans le
corps de la macro, les protections par contre-oblique dcrites plus haut
sont dveloppes. La contre-oblique protgera tout autre caractre 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 (voir plus bas COMMANDES INTERNES DE L'INTERPRTEUR ).
Variables de readline
Readline dispose de variables permettant de personnaliser encore plus
son comportement. Une variable peut tre mise 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 vari-
ables non reconnues sont ignors. Lorsqu'une valeur de variable est lue,
les variables vides ou de valeur nulle, on (insensible la casse) et
1 sont quivalent On. Toutes les autres valeurs sont quivalentes Off.
Les variables et leurs valeurs par dfaut, sont :
bell-style (audible)
Cette variable commande readline lorsqu'il faut dclencher
l'alarme du terminal. Si mise none, readline n'met jamais
d'alarme. Si mise visible, readline utilise une alarme visuelle
s'il en est une de disponible. Si mise audible, readline essaie
de faire sonner l'alarme du terminal.
bind-tty-special-chars (On)
Si mise On, readline tente d'associer les caractres de contrle
traits spcialement par le pilote de terminal du noyau leurs
quivalents readline.
comment-begin ( # )
Cette chane est insre quand la commande readline insert-comment
est excute. Cette commande est associe M-# en mode emacs et #
en mode de commande vi.
completion-ignore-case (Off)
Si mise On, readline effectue les correspondances et complte-
ments de noms de fichiers sans tenir compte de la casse.
completion-query-items (100)
Ceci dtermine quand l'utilisateur est interrog pour voir le nom-
bre de compltements possibles produits par la commande possi-
ble-completions. Elle peut tre mise toute valeur entire posi-
tive. Si le nombre de compltements possibles est suprieur ou gal
la valeur de cette variable, il est demand l'utilisateur s'il
veut ou non les voir ; sinon, ils sont simplement affichs sur le
terminal.
convert-meta (On)
Si mise On, readline transformera les caractres avec leur
huitime bit
1 en suite de caractres ASCII en supprimant le huitime bit et
en insrant comme prfixe un caractre d'chappement (en fait, en
utilisant le caractre d'chappement comme prfixe mta).
disable-completion (Off)
Si mise On, readline empchera le compltement des mots. Les car-
actres de compltement seront insrs sur la ligne comme s'ils
avaient t associs
self-insert.
editing-mode (emacs)
Commande si readline doit dmarrer avec des raccourcis clavier
similaires emacs ou vi. editing-mode peut tre mis soit emacs
ou soit vi.
enable-keypad (Off)
Quand mise On, readline essayera d'activer le clavier de
l'application lorsqu'elle sera appele. Sur certains systmes,
cela est ncessaire pour utiliser les flches.
expand-tilde (Off)
Si mise on, le dveloppement du tilde est effectu lorsque read-
line tente un compltement de commandes.
history-preserve-point (Off)
Si mise on, le programme d'historique tente de placer le
curseur au mme endroit sur chaque ligne de l'historique avec
previous-history ou next-history.
horizontal-scroll-mode (Off)
Quand mise On, readline utilisera une seule ligne d'affichage
et fera dfiler la saisie horizontalement sur une seule ligne
d'cran quand elle devient plus longue que la largeur de l'cran,
plutt que de faire un retour
la ligne.
input-meta (Off)
Si mise On, readline acceptera des saisies sur huit bits
(autrement dit il ne supprimera pas le huitime bit), quel que
soit le terminal utilis. Le nom meta-flag est un synonyme pour
cette variable.
isearch-terminators ( C-[C-J )
La chane des caractres qui doivent terminer une recherche incr-
mentale sans que le caractre ne soit excut comme une commande.
Si cette variable n'a pas reu de valeur, les caractres ESC et
C-J termineront une recherche incrmentale.
keymap (emacs)
Configure le jeu de raccourcis readline courant. 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 dfaut est emacs ; la valeur de editing-mode modifie
aussi le jeu de raccourcis par dfaut.
mark-directories (On)
Si mise On, les noms de rpertoires ont une barre oblique
d'ajoute.
mark-modified-lines (Off)
Si mise On, les lignes d'historique qui ont t modifies seront
prcdes l'affichage d'un astrisque (*).
mark-symlinked-directories (Off)
Si mise On, les noms complts qui sont des liens symboliques
vers des rpertoires ont une barre oblique d'ajoute (selon la
valeur de mark-directories).
match-hidden-files (On)
Cette variable, quand mise On, conduit readline faire corre-
spondre des fichiers dont le nom commence par un . (fichiers
cachs) lors du compltement de noms de fichiers, moins que le
. de tte soit fourni par l'utilisateur dans le nom de fichier
complter.
output-meta (Off)
Si mise On, readline affichera directement les caractres ayant
leur huitime bit 1, plutt que d'utiliser une suite de caractres
d'chappement avec prfixe mta.
page-completions (On)
Si mise On, readline utilise un visualisateur interne du type
more pour afficher un plein cran la fois des compltements.
print-completions-horizontally (Off)
Si mise On, readline affichera les compltements correspondants
tris horizontalement dans l'ordre alphabtique plutt que verti-
calement.
show-all-if-ambiguous (Off)
Ceci modifie le comportement par dfaut des fonctions de complte-
ment. Si mise on, les mots qui ont plus d'un compltement possi-
bles conduisent l'affichage immdiat des correspondances plutt
qu' l'mission d'une alarme.
show-all-if-unmodified (Off)
Ceci modifie le comportement par dfaut des fonctions de complte-
ment de faon similaire show-all-if-ambiguous. Si mise on, les
mots qui ont plus d'un compltement possible sans aucun complte-
ment partiel possible (les compltements possibles ne partagent
pas de prfixe commun) conduisent
l'affichage immdiat des correspondances plutt qu' l'mission
d'une alarme.
visible-stats (Off)
Si mise On, un caractre indiquant le type de fichier, comme
signal par stat(2) est ajout aux noms de fichiers en affichant
les compltements possibles.
Constructions conditionnelles de readline
Readline implmente un mcanisme inspir des fonctionnalits de compilation
conditionnelle du pr-processeur C qui permet d'effectuer le paramtrage
des raccourcis clavier et des variables selon les rsultats de tests. Il
y a quatre directives d'analyse utilises.
$if La structure $if permet de choisir les raccourcis selon le mode
d'dition, le terminal utilis ou l'application utilisant read-
line. Le texte du test va jusqu' la fin de la ligne ; aucun car-
actre n'est ncessaire pour le dlimiter.
mode La forme mode= de la directive $if est utilise pour vri-
fier si readline est en mode emacs ou vi. Ceci peut tre
utilis conjointement la commande set keymap, par exemple
pour ne mettre les raccourcis des jeux de raccourcis
emacs-standard et emacs-ctlx que si readline dmarre en
mode emacs.
term La forme term= peut tre utilise pour ajouter des raccour-
cis clavier spcifiques 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 prcde le premier signe -. Ceci permet, par
exemple, de faire correspondre sun avec la fois sun et
sun-cmd.
application
La structure application est utilise pour inclure des
paramtrages spcifiques chaque application. Chaque pro-
gramme utilisant la bibliothque readline configure un nom
d'application et un fichier d'initialisation peut tester
une valeur particulire. Ceci peut tre utilis pour
associer des suites de touches des fonctions utiles pour
un certain programme. Par exemple, les commandes suiv-
antes ajoutent une suite de touches qui protge le mot
courant ou prcdant dans Bash :
$if Bash
# Protger le mot courant ou le prcdant
"\C-xq": "\eb\"\ef\""
$endif
$endif Cette commande, comme on l'a vu dans l'exemple ci-dessus, ter-
mine une commande $if.
$else Permet d'ajouter des commandes qui seront excutes 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 (voir HISTORIQUE plus bas) des lignes contenant une chane
donne. Il y a deux modes de recherche : incrmental et non incrmental.
Les recherches incrmentales commencent avant mme que l'utilisateur ait
termin de saisir la chane recherche. chaque caractre saisi, readline
affiche l'lment suivant de l'historique qui correspond la chane dj
entre. Une recherche incrmentale ncessite seulement le nombre de carac-
tres indispensable pour retrouver l'lment d'historique dsir. Les carac-
tres se trouvant dans la variable isearch-terminators servent terminer
une recherche incrmentale. Si aucune valeur n'a t affecte cette vari-
able les caractres chappement (Escape) et Contrle-J terminent une
recherche incrmentale. Contrle-G permet d'interrompre une recherche
incrmentale et de restaurer la ligne originale. Lorsque la recherche
est finie, l'lment d'historique contenant la chane dsire devient la
ligne courante.
Pour trouver les autres lments correspondant dans la file d'historique,
saisissez selon Contrle-S ou Contrle-R. Ceci recherchera en avant ou en
arrire dans l'historique l'lment suivant correspondant la chane saisie
jusque-l. Toute autre suite de touches associe une commande readline
interrompra la recherche et excutera la commande. Par exemple, un saut
de ligne interrompra la recherche et acceptera la ligne, excutant ainsi
la commande de la file d'historique.
Readline se souvient de la dernire chane de recherche incrmentale. Si
deux Contrle-R sont taps sans caractre pour dfinir une nouvelle
recherche de chane, toute chane mmorise sera utilise.
Les recherches non incrmentales lisent la chane dsire en entier avant
de dmarrer la recherche de correspondance dans la liste d'historique.
La chane peut tre saisie par l'utilisateur ou faire partie du contenu
de la ligne courante.
Noms des commandes readline
Ce qui suit est une liste des noms de commandes et les suites de
touches auxquelles elles sont associes par dfaut. Les noms de commandes
sans suite de touche les accompagnant ne sont pas associes par dfaut.
Dans les descriptions suivantes, le curseur (point) se rapporte la
position courante du curseur et la marque se rapporte une position de
curseur sauvegarde par la commande set-mark. Le texte entre le curseur
et la marque est dsign comme la zone.
Commandes de dplacement
beginning-of-line (C-a)
Saut au dbut de la ligne courante.
end-of-line (C-e)
Saut la fin de la ligne.
forward-char (C-f)
Avancer d'un caractre.
backward-char (C-b)
Reculer d'un caractre.
forward-word (M-f)
Avancer jusqu' la fin du mot suivant. Les mots sont composs de
caractres alphanumriques (lettres et chiffres).
backward-word (M-b)
Reculer jusqu'au dbut du mot courant ou du prcdent. Les mots
sont composs de caractres alphanumriques (lettres et chiffres).
clear-screen (C-l)
Effacer l'cran, en laissant la ligne courante au sommet de
l'cran. S'il y a un argument, rafrachir la ligne courante sans
effacer l'cran.
redraw-current-line
Rafrachir la ligne courante.
Commandes de manipulation de l'historique
accept-line (Saut 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 contrle de la variable HISTCONTROL. Si cette ligne est une
modification d'une ligne de l'historique, restaurer cette
dernire.
previous-history (C-p)
Rcuprer la commande prcdente de la file d'historique, en remon-
tant dans la file.
next-history (C-n)
Rcuprer la commande suivante dans la file d'historique, en
descendant dans la file.
beginning-of-history (M-<)
Rcuprer la premire 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 arrire dans l'historique, en remontant. C'est une
recherche incrmentale.
forward-search-history (C-s)
Rechercher en avant dans l'historique, en descendant. C'est une
recherche incrmentale.
non-incremental-reverse-search-history (M-p)
Rechercher une chane en arrire dans l'historique, en remontant
depuis la ligne actuelle, utiliser une recherche non incrmentale
pour une chane fournie par l'utilisateur.
non-incremental-forward-search-history (M-n)
Rechercher une chane en avant dans l'historique, utiliser une
recherche non incrmentale pour une chane fournie par l'utilisa-
teur.
history-search-forward
Rechercher en avant dans l'historique la chane comprise entre le
dbut de la ligne actuelle et la position du curseur. C'est une
recherche non incrmentale.
history-search-backward
Rechercher en arrire dans l'historique la chane comprise entre
le dbut de la ligne actuelle et la position du curseur. C'est
une recherche non incrmentale.
yank-nth-arg (M-C-y)
Insrer, l'emplacement du curseur, le premier argument de la
commande prcdente. Gnralement, il s'agit du second mot de la
ligne prcdente. Avec un argument n, insrer le n-ime mot de la
commande prcdente (les mots sont numrots partir de 0). Un argu-
ment ngatif insre le n-ime mot en partant de la fin de la com-
mande prcdente. Une fois que l'argument n est trait, l'argument
est extrait comme si le dveloppement d'historique !n avait t
spcifi.
yank-last-arg (M-., M-_)
Insrer la position du curseur le dernier argument de la com-
mande prcdente (le dernier mot de l'lment prcdent de la file
d'historique). Avec un argument, se comporte exactement comme
yank-nth-arg. Les appels successifs yank-last-arg remontent
dans la file d'historique en insrant le dernier argument de
chaque ligne tour tour. Les outils de dveloppement d'historique
sont utiliss pour extraire le dernier argument, comme si le
dveloppement d'historique !$ avait t spcifi.
shell-expand-line (M-C-e)
Dvelopper, comme le fait l'interprteur, la ligne courante. Ceci
effectue le dveloppement des alias et de l'historique, aussi
bien que l'ensemble des dveloppements effectus par l'interpr-
teur. Voir plus bas DVELOPPEMENT DE L'HISTORIQUE, pour une
description dtaille du dveloppement de l'historique.
history-expand-line (M-^)
Effectuer le dveloppement d'historique sur la ligne courante.
Voir plus bas DVELOPPEMENT DE L'HISTORIQUE, pour une description
dtaille.
magic-space
Effectuer le dveloppement de l'historique sur la ligne courante
et insrer une espace. Voir plus bas DVELOPPEMENT DE L'HIS-
TORIQUE, pour une description dtaille.
alias-expand-line
Effectuer le dveloppement des alias sur la ligne courante. Voir
ALIAS plus haut pour une description des dveloppements d'alias.
history-and-alias-expand-line
Effectuer le dveloppement de l'historique et des alias sur la
ligne courante.
insert-last-argument (M-., M-_)
un synonyme de yank-last-arg.
operate-and-get-next (C-o)
Valider la ligne courante et rcuprer la ligne suivante de l'his-
torique pour dition. Tout argument est ignor.
edit-and-execute-command (C-xC-e)
Appelle un diteur sur la ligne de commande courante et excute le
rsultat comme une commande d'interprteur. Bash tente d'appeler,
dans cet ordre, $FCEDIT, $EDITOR et emacs comme diteur.
Commande d'dition de texte
delete-char (C-d)
Effacer le caractre sous le curseur. Si le curseur est au dbut
de la ligne, si celle-ci est vide et si le dernier caractre
saisi n'tait pas associ delete-char, alors renvoyer EOF.
backward-delete-char ( Rubout : Effacement)
Effacer le caractre 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 caractre sous le curseur, sauf s'il est en fin de
ligne, auquel cas le caractre avant le curseur est effac.
quoted-insert (C-q, C-v)
Ajouter littralement sur la ligne le caractre saisi suivant.
Ceci permet d'insrer des caractres comme C-q, par exemple.
tab-insert (C-v TAB)
Insrer un caractre de tabulation.
self-insert (a, b, A, 1, !, ...)
Insrer le caractre mentionn.
transpose-chars (C-t)
changer les caractres se trouvant devant et sous le curseur. Le
curseur est avanc d'un caractre. la fin d'une ligne, les carac-
tres changs sont les deux prcdents. Les arguments ngatifs n'ont
aucun effet.
transpose-words (M-t)
Dplace le mot avant le curseur au-del du mot aprs le curseur et
dplace 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 courant (ou le suivant) en majuscules. Avec
un argument ngatif, agir sur le mot prcdent mais ne pas dplacer
le curseur.
downcase-word (M-l)
Transformer le mot courant (ou le suivant) en minuscules. Avec
un argument ngatif, agir sur le mot prcdent mais ne pas dplacer
le curseur.
capitalize-word (M-c)
Passer en majuscule l'initiale du mot courant (ou du suivant).
Avec un argument ngatif, agir sur le mot prcdent mais ne pas
dplacer le curseur.
overwrite-mode
Basculer en mode d'crasement. Avec un argument numrique
explicite strictement positif, bascule en mode d'crasement. Avec
un argument numrique explicite ngatif ou nul, bascule en mode
d'insertion. Cette commande n'affecte que le mode emacs ; le
mode vi crase de faon diffrente. Chaque appel readline() dmarre
en mode d'insertion. En mode d'crasement, les caractres associs
self-insert remplacent le texte sous le curseur plutt que de
dplacer le texte vers la droite. Les caractres associs back-
ward-delete-char remplacent le caractre avant le curseur par une
espace. Par dfaut, cette commande n'est pas associe.
Effacement et rcupration
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 arrire jusqu'au dbut de ligne.
unix-line-discard (C-u)
Effacer le texte entre le dbut 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 courant ou,
si entre des mots, jusqu' la fin du mot suivant. Les limites des
mots sont identiques celles utilises par forward-word.
backward-kill-word (M-Effacement)
Effacer le mot sous le curseur. Les limites de mots sont iden-
tiques celles utilises par 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
Dtruire le texte dans la zone courante.
copy-region-as-kill
Copier le texte de la zone vers le tampon circulaire.
copy-backward-word
Copier le mot prcdant 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)
Rcuprer le texte au sommet du tampon circulaire la position du
curseur dans le tampon.
yank-pop (M-y)
Excuter une rotation du tampon circulaire et rcuprer le texte
situ son nouveau sommet. Ceci ne fonctionne qu'aprs yank ou
yank-pop.
Arguments numriques
digit-argument (M-0, M-1, ..., M--)
Ajouter ce chiffre l'argument en cours de rdaction ou crer un
nouvel argument. M-- cre un argument ngatif.
universal-argument
Il s'agit d'une autre faon de spcifier un argument. Si cette
commande est suivie d'un ou plusieurs chiffres facultativement
prcds d'un signe moins, ces chiffres dfinissent l'argument. Si
la commande est suivie de chiffres, une nouvelle excution de
universal-argument termine l'argument numrique, mais est ignore
dans les autres cas. Par exception, si cette commande est suivie
immdiatement par un caractre qui n'est ni un chiffre ni le signe
moins, le compteur d'arguments de la commande suivante est mul-
tipli par 4. Le compteur d'arguments est initialement un, donc
la premire excution de cette commande amne le compteur d'argu-
ments quatre, une seconde fois porte le compteur d'arguments
seize et ainsi de suite.
Compltement
complete (TAB)
Essayer d'effectuer un compltement du texte situ avant le
curseur. Bash effectue le compltement en considrant 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 compltement de nom de
fichier est essay.
possible-completions (M-?)
Affiche les compltements possibles pour le texte situ avant le
curseur.
insert-completions (M-*)
Insrer avant le curseur l'ensemble des compltements qui auraient
t produits par possible-completions.
menu-complete
Analogue complete, mais en remplaant le mot complter par une
seule correspondance de la liste des compltements possibles. Des
excutions rptes de menu-complete parcourent la liste des com-
pltements possibles, en insrant chaque correspondance tour
tour. la fin de la liste des compltements, une alarme est mise
(selon la configuration de bell-style) et le texte original est
restaur. Un argument de n dplace de n positions dans la liste
des correspondances. Un argument ngatif peut tre utilis pour
revenir en arrire dans la liste. Cette commande est destine tre
associe la touche TAB, mais ne l'est pas par dfaut.
delete-char-or-list
Effacer le caractre sous le curseur sauf au dbut ou en fin de
ligne (comme delete-char). En fin de ligne, se comporte comme
possible-completions. Cette commande n'est associe aucune
touche par dfaut.
complete-filename (M-/)
Essayer le compltement des noms de fichiers sur le texte situ
avant le curseur.
possible-filename-completions (C-x /)
Afficher les compltements possibles du texte situ avant le
curseur, trait comme un nom de fichier.
complete-username (M-~)
Essayer le compltement sur le texte situ avant le curseur, en le
traitant comme un nom d'utilisateur.
possible-username-completions (C-x ~)
Afficher les compltements possibles du texte situ avant le
curseur, en le traitant comme un nom d'utilisateur.
complete-variable (M-$)
Essayer le compltement sur le texte situ avant le curseur, en le
traitant comme une variable de l'interprteur.
possible-variable-completions (C-x $)
Afficher les compltements possibles du texte situ avant le
curseur, en le traitant comme une variable de l'interprteur.
complete-hostname (M-@)
Essayer le compltement sur le texte situ avant le curseur, en le
traitant comme un nom de machine.
possible-hostname-completions (C-x @)
Afficher les compltements possibles du texte situ avant le
curseur, en le traitant comme un nom de machine.
complete-command (M-!)
Essayer le compltement sur le texte situ avant le curseur, en le
traitant comme un nom de commande. Le compltement des commandes
essaie de faire correspondre le texte, dans cet ordre, aux
alias, mots rservs, fonctions de l'interprteur, commandes
internes de l'interprteur et finalement les noms de fichiers
excutables.
possible-command-completions (C-x !)
Afficher les compltements possibles du texte situ avant le
curseur, en le traitant comme un nom de commande.
dynamic-complete-history (M-TAB)
Essayer le compltement du texte situ avant le curseur, en le
comparant aux lignes de la file d'historique lui correspondant
pour les compltements possibles.
complete-into-braces (M-{)
Effectuer un compltement en noms de fichiers et insrer la liste
des compltements possibles entre accolades afin que la liste
soit exploitable par l'interprteur (voir Dveloppement des acco-
lades plus haut).
Macros clavier
start-kbd-macro (C-x ()
Dmarre la mmorisation dans la macro en cours des caractres taps.
end-kbd-macro (C-x ))
Arrte la mmorisation dans la macro en cours des caractres saisis
et conserve la dfinition.
call-last-kbd-macro (C-x e)
R-excute la dernire macro dfinie, en agissant comme si les car-
actres contenus dans cette macro taient saisis au clavier.
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 caractre x prcd de Mta est en minuscule, excuter la com-
mande qui est associe aux caractres majuscules correspondants.
prefix-meta (ESC)
Considrer le prochain caractre saisi comme un Mta. ESC f est
quivalent Meta-f.
undo (C-_, C-x C-u)
Fonction d'annulation incrmentale, chaque ligne tant mmorise
sparment.
revert-line (M-r)
Annuler toutes les modifications sur cette ligne. Ceci est quiv-
alent rpter undo en nombre suffisant pour ramener la ligne son
tat initial.
tilde-expand (M-&)
Effectuer le dveloppement du tilde sur le mot courant.
set-mark (C-@, M-<space>)
Placer la marque la position actuelle du curseur. Si un argu-
ment numrique est fourni, la marque est pose la position corre-
spondante.
exchange-point-and-mark (C-x C-x)
changer le curseur et la marque. Le position courante du curseur
est mise la position sauvegarde prcdemment et l'ancienne posi-
tion du curseur est mmorise comme la marque.
character-search (C-])
Un caractre est lu et le curseur dplac l'occurrence suivante de
ce caractre. Un argument ngatif recherche les occurrences prc-
dentes.
character-search-backward (M-C-])
Un caractre est lu et le curseur dplac l'occurrence prcdente de
ce caractre. Un argument ngatif recherche les occurrences suiv-
antes.
insert-comment (M-#)
Sans argument numrique, la valeur de la variable comment-begin
de readline est insre au dbut de la ligne courante. Si un argu-
ment numrique est fourni, cette commande agit comme une bas-
cule : si les caractres du dbut de ligne ne correspondent pas
la valeur de comment-begin, la valeur est insre, sinon, les car-
actres dans comment-begin sont effacs du dbut de la ligne. Dans
les deux cas, la ligne est accepte comme si un saut de ligne
avait t saisi. La valeur par dfaut de comment-begin conduit
cette commande transformer la ligne courante de l'interprteur
en commentaire. Si un argument numrique conduit l'effacement du
caractre de commentaire, la ligne sera excute par l'interprteur.
glob-complete-word (M-g)
Le mot avant le curseur est trait comme un motif pour un
dveloppement de chemin, avec un astrisque implicitement ajout.
Ce motif est utilis pour produire une liste de noms de fichiers
correspondants pour de possibles compltements.
glob-expand-word (C-x *)
Le mot prcdant le curseur est considr comme un motif de
dveloppement de chemin et la liste des fichiers correspondants
est insre sa place. Si un argument numrique est fourni, un
astrisque est ajout avant le dveloppement du chemin.
glob-list-expansions (C-x g)
La liste des dveloppements qui aurait t produite par
glob-expand-word est affiche et la ligne est rafrachie. Si un
argument numrique est fourni, un astrisque est ajout devant le
dveloppement du chemin.
dump-functions
Afficher toutes les fonctions et leurs raccourcis clavier sur le
flot de sortie de readline. Si un argument numrique est fourni,
la sortie est mise en forme de faon tre incorpore dans un
fichier inputrc.
dump-variables
Afficher toutes les variables readline modifiables et leurs
valeurs sur le flot de sortie. Si un argument numrique est
fourni, la sortie est mise en forme de faon qu'elle puisse tre
incorpore dans un fichier inputrc.
dump-macros
Afficher toutes les suites de touches readline associes des
macros et les chanes auxquelles elles correspondent. Si un argu-
ment numrique est fourni, la sortie est mise en forme d'une faon
lui permettant d'tre incorpore dans un fichier inputrc.
display-shell-version (C-x C-v)
Afficher des informations sur la version courante de bash.
Compltement programmable
Lorsqu'un compltement de mot est tent pour un argument d'une commande
pour laquelle une spcification de compltement a t dfinie en utilisant
la commande interne complete (voir plus bas COMMANDES INTERNES DE
L'INTERPRTEUR ), les outils de compltement programmables sont appels.
En premier lieu, le nom de la commande est identifi. Si une spcifica-
tion de compltement a t dfinie pour cette commande, elle est utilise
pour produire la liste des compltements possibles pour le mot. Si le
mot de commande est un chemin d'accs complet, on cherche en premier
lieu une spcification de compltement pour le chemin d'accs complet. Si
aucune spcification de compltement n'est trouve pour le chemin d'accs
complet, une tentative est effectue pour trouver une spcification de
compltement pour la portion suivant la barre oblique finale.
Une fois qu'une spcification de compltement a t trouve, elle est
utilise pour produire la liste des mots correspondants. Si aucune spci-
fication de compltement n'est trouve, le compltement par dfaut de bash,
tel que dcrit plus haut dans Compltement est effectu.
Tout d'abord, les actions dfinies par la spcification de compltement
sont utilises. Seules les correspondances qui sont prfixes par le mot
complter sont renvoyes. Lorsque l'option -f ou -d est utilise pour le
compltement des noms de fichiers ou de rpertoire, la variable de
l'interprteur FIGNORE est utilise pour filtrer les correspondances.
Tous les compltements spcifis par le motif de dveloppement de nom de
fichier de l'option -G sont ensuite produits. Il n'est pas ncessaire
que les mots produits par le motif correspondent au mot complter. La
variable de l'interprteur GLOBIGNORE n'est pas utilise pour filtrer les
correspondances, mais la variable FIGNORE est utilise.
Ensuite, la chane spcifie comme argument l'option -W est prise en
compte. Cette chane est tout d'abord dcoupe en utilisant les caractres
de la variable spciale IFS comme dlimiteurs. La protection de l'inter-
prtation est prise en compte. Chaque mot est ensuite dvelopp en util-
isant les dveloppements d'accolades, du tilde, des paramtres et des
variables, de mme que la substitution de commande et le dveloppement
arithmtique comme dcrit plus haut dans DVELOPPEMENTS. Les rsultats
sont dcoups en utilisant les rgles dcrites plus haut dans Dcoupage en
mots. Les rsultats du dveloppement sont compars au mot complter en con-
sidrant ce dernier comme prfixe et les mots correspondants deviennent
les compltements possibles.
Aprs que ces correspondances ont t produites, toute fonction de
l'interprteur ou commande spcifie avec les options -F et -C est appele.
Lorsque la commande ou la fonction est appele, les variables COMP_LINE
et COMP_POINT se voient affectes de valeurs comme dcrit plus haut dans
Variables de l'interprteur. Si une fonction de l'interprteur est
appele, les variables COMP_WORDS et COMP_CWORD sont galement cres.
Lorsqu'une fonction ou une commande est appele, le premier argument est
le nom de la commande dont les arguments doivent tre complts, le second
argument est le mot complter et le troisime argument est le mot prc-
dent celui devant tre complt sur la ligne de commande. Aucun filtrage
des compltements produits pour le mot
complter n'est effectu ; la fonction ou la commande a toute libert
dans la production des correspondances.
Toute fonction spcifie avec -F est appele en premier. La fonction peut
utiliser tous les outils de l'interprteur, incluant la commande interne
compgen dcrite plus bas, pour produire les correspondances. Elle doit
mettre les compltements possibles dans la variable tableau COMPREPLY.
Ensuite, toute commande spcifie avec l'option -C est appele dans un
environnement quivalent la substitution de commande. Elle devrait
afficher une liste des compltements possibles, une par ligne, sur la
sortie standard. Si ncessaire, une contre-oblique peut tre utilise pour
protger un caractre de saut de ligne.
Aprs que tous les compltements possibles ont t produits, tout filtre,
spcifi avec l'option -X, est appliqu la liste. Ce filtre est un motif
comme utilis dans le dveloppement des chemins ; un & dans le motif est
remplac par le texte du mot en cours de compltement. Un & littral peut
tre protg par une contre-oblique ; la contre-oblique est supprime avant
la tentative de mise en correspondance. Tout compltement qui correspond
au motif sera supprim de la liste. Un ! au dbut du motif provoque la
ngation de ce motif ; dans ce cas, tout compltement ne correspondant
pas au motif sera supprim de la liste.
Finalement, tous prfixe et suffixe spcifis avec les options -P et -S
sont ajouts chacun des lments de la liste de compltement et le rsultat
est renvoy au programme de compltement de readline comme tant la liste
des compltements possibles.
Si les oprations prcdemment appliques ne produisent aucune correspon-
dance et si l'option -o dirnames a t fournie complete lorsque la spci-
fication de compltement a t dfinie, le compltement des noms de rper-
toire est tent.
Si l'option -o plusdirs a t fournie complete lors de la dfinition de
la spcification de compltement, le compltement des noms de rpertoires
est tent et toute correspondance est ajoute aux rsultats des autres
actions.
Par dfaut, si une spcification de compltement est trouve, tout ce
qu'elle produit est renvoy au programme de compltement comme un jeu
complet des compltements possibles. Les compltements par dfaut de bash
ne sont pas tents et le compltement par dfaut de readline ou le com-
pltement de fichiers est dactiv. Si l'option -o bashdefault a t fournie
complete lors de la dfinition de la spcification de compltement, les
compltements par dfaut de bash sont tents si la spcification de com-
pltement ne produit aucune correspondance. Si l'option -o default a t
fournie complete lors de la dfinition de la spcification de complte-
ment, le compltement par dfaut de readline sera effectu si la spcifica-
tion de compltement (et, si tents, les compltements par dfaut de bash)
ne produise(nt) aucune correspondance.
Lorsqu'une spcification de compltement indique qu'un compltement de nom
de rpertoire est souhait, les fonctions de compltement programmable
forcent readline ajouter une barre oblique pour complter les noms qui
sont des liens symboliques vers des rpertoires, selon la valeur de la
variable mark-directories de readline, indpendamment du paramtrage de
la variable mark-symlinked-directories de readline.
Quand l'option -o history de la commande interne set est active,
l'interprteur donne accs un historique des commandes, c'est--dire la
liste des commandes prcdemment utilises. La valeur de la variable HIST-
SIZE est utilise comme le nombre de commandes sauvegarder dans la file
d'historique. Le texte des HISTSIZE dernires commandes (par dfaut 500)
est sauvegard. L'interprteur conserve chaque commande dans la file
d'historique avant le dveloppement des paramtres et des variables (voir
DVELOPPEMENTS plus haut) mais aprs avoir effectu le dveloppement de
l'historique, selon les valeurs des variables de l'interprteur HISTIG-
NORE et HISTCONTROL.
Au dmarrage, l'historique est initialis avec le fichier dont le nom est
contenu dans la variable HISTFILE (par dfaut ~/.bash_history). Le
fichier dsign par la valeur de HISTFILE est tronqu si ncessaire, pour
ne pas contenir plus de lignes que le nombre spcifi par HISTFILESIZE.
Lorsqu'un interprteur interactif termine, les HISTSIZE dernires lignes
de la file d'historique sont copies dans le fichier HISTFILE. Si
l'option d'interprteur histappend est active (voir plus bas la descrip-
tion de shopt dans COMMANDES INTERNES DE L'INTERPRTEUR ), les lignes
sont ajoutes au fichier d'historique, sinon le fichier est cras. Si
HISTFILE est inexistante ou si le fichier d'historique n'est pas acces-
sible en criture, l'historique n'est pas sauvegard. Aprs la sauvegarde
de l'historique, le fichier d'historique est tronqu pour ne pas con-
tenir plus de HISTFILESIZE lignes. Si HISTFILESIZE n'existe pas, aucune
troncature n'est effectue.
La commande interne fc (voir plus bas COMMANDES INTERNES DE L'INTERPR-
TEUR ) permet d'afficher, d'diter ou de r-excuter 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
accs la file d'historique.
L'interprteur permet de configurer quelles commandes seront sauvegardes
dans la file d'historique. Les variables HISTCONTROL et HISTIGNORE peu-
vent tre configures pour conduire l'interprteur ne sauvegarder qu'un
sous-ensemble des commandes saisies. L'option d'interprteur cmdhist, si
active, conduit l'interprteur essayer de sauvegarder chaque ligne
d'une commande multiligne dans le mme lment de l'historique, en
ajoutant des points-virgules si ncessaire pour prserver l'exactitude de
la syntaxe. L'option d'interprteur lithist conduit l'interprteur
sauvegarder les commandes avec des sauts de lignes incorpors plutt que
des points-virgules. Voir plus bas la description de la commande
interne shopt dans COMMANDES INTERNES DE L'INTERPRTEUR pour des dtails
sur la cration et la destruction des options d'interprteur.
L'interprteur propose des possibilits de dveloppement de l'historique
qui sont semblables celles de csh. Ce paragraphe dcrit quelles syn-
taxes sont disponibles. Cette fonctionnalit est active par dfaut dans
les interprteurs interactifs et peut tre dsactive en utilisant l'option
+H de la commande interne set (voir plus bas COMMANDES INTERNES DE
L'INTERPRTEUR ). Les interprteurs non interactifs n'effectuent pas de
dveloppement d'historique par dfaut.
Le dveloppement de l'historique permet d'insrer des mots de la file
d'historique dans le flot de saisie, facilitant la rptition de comman-
des, l'insertion des arguments d'une ligne antrieure dans la saisie en
cours ou la correction rapide d'erreurs dans les commandes prcdentes.
Le dveloppement de l'historique est effectu immdiatement aprs la lec-
ture d'une ligne complte, avant que l'interprteur ne la dcompose en
mots. Il se droule en deux parties. La premire consiste dterminer la
ligne de la file d'historique utiliser pour les substitutions, la sec-
onde permet de slectionner les parties de la ligne inclure dans la
nouvelle ligne. La ligne slectionne dans l'historique est l'vnement et
les parties de cette ligne rutiliser sont des mots. Plusieurs modifi-
cateurs permettent de manipuler les mots slectionns. La ligne est
dcoupe en mots de la mme faon que lors de la lecture d'une saisie,
ainsi plusieurs mots spars par des mtacaractres et encadrs par des
guillemets simples sont considrs comme un unique mot. Le dveloppement
de l'historique est introduit par l'apparition du caractre de dveloppe-
ment, qui est ! par dfaut. Seule la contre-oblique (\) et les
guillemets simples permettent de protger le caractre de dveloppement de
l'historique.
Plusieurs caractres empchent le dveloppement de l'historique s'ils se
trouvent immdiatement aprs le caractre de dveloppement de l'historique,
mme s'il n'est pas protg : espace, tabulation, saut de ligne,
retour-chariot et =. Si l'option d'interprteur extglob est active, (
empchera aussi le dveloppement.
Plusieurs options d'interprteur, configurables avec la commande interne
shopt permettent d'ajuster le comportement de le dveloppement de l'his-
torique. Si l'option d'interprteur histverify est active (voir la
description de la commande interne shopt) et si readline est utilise,
les substitutions d'historiques ne sont pas transmises tout de suite
l'analyseur de l'interprteur. la place, la ligne dveloppe est recharge
dans la mmoire tampon de readline pour permettre des modifications
ultrieures. Si readline est utilise et si l'option histreedit est
active, une substitution d'historique qui choue est recharge dans la
mmoire 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 rellement. L'option -s de la commande interne his-
tory permet d'ajouter des commandes la fin de la file d'historique
sans les avoir effectivement excutes, afin qu'elles soient disponibles
pour des rappels ultrieurs.
L'interprteur offre le contrle des divers caractres utiliss par le
mcanisme de dveloppement de l'historique (voir la description de
histchars plus haut dans Variables de l'interprteur).
Indicateur d'vnement
Un indicateur d'vnement est une rfrence un lment ligne de commande
dans la file d'historique.
! Dbute une substitution d'historique, sauf s'il est suivi par un
blanc, saut de ligne, retour-chariot, = ou ( (lorsque l'option
d'interprteur extglob est active en utilisant la commande
interne shopt).
!n Se rapporte la ligne de commande n.
!-n Se rapporte la ligne de commande courante moins n.
!! Se rapporte la commande prcdente. C'est un synonyme de !-1 .
!chane Se rapporte la plus rcente commande commenant par chane.
!?chane[?]
Se rapporte la plus rcente commande contenant chane. Le ? final
peut tre omis si chane est immdiatement suivie d'un saut de
ligne.
^chane_1^chane_2^
Substitution rapide. Rpter la dernire commande en remplaant
chane_1 par chane_2. quivalent !!:s/chane_1/chane_2/ (voir
Modificateurs plus bas).
!# La ligne entire tape jusqu' prsent.
Indicateurs de mots
Ces indicateurs servent slectionner les mots dsirs dans un vnement. Un
: spare l'indicateur d'vnements de l'indicateur de mot. On peut l'omet-
tre si l'indicateur de mot commence par ^, $, *, - ou %. Les mots sont
numrots depuis le dbut de la ligne, le premier tant not 0 (zro). Les
mots sont insrs dans la ligne courante, spars par des espaces.
0 (zro)
Le zro-ime mot. Pour l'interprteur, c'est le nom de la commande.
n Le n-ime mot.
^ Le premier argument, c'est--dire le mot 1.
$ Le dernier argument.
% Le mot correspondant la recherche ?chane? la plus rcente.
x-y Une plage de mots, -y permet d'abrger 0-y .
* Tous les mots sauf le zro-ime. C'est un synonyme pour 1-$ . Il
n'est pas erron d'utiliser * s'il n'y a qu'un mot dans l'vne-
ment ; la chane vide est renvoye dans ce cas.
x* Abrviation de x-$.
x- Abrviation de x-$ comme x*, mais sans le dernier mot.
Si un indicateur de mot est fourni sans indication d'vnement, la
dernire commande est utilise.
Modificateurs
Aprs un indicateur de mot facultatif, une suite d'un ou plusieurs des
modificateurs suivants peut apparatre, chacun prcd par un : .
h limine la fin du chemin d'accs, ne laissant que son dbut.
t Supprimer tout le dbut d'un chemin d'accs, en ne laissant que la
fin.
r Supprime un suffixe final de la forme .xxx, en ne laissant que
le nom de base.
e Tout supprimer sauf le suffixe final.
p Afficher la nouvelle commande sans l'excuter.
q Protger les mots substitus, pour viter des substitutions
futures.
x Protger les mots substitus comme avec q, mais en sparant des
mots aux blancs et aux sauts de ligne.
s/ancien/nouveau/
Remplacer par nouveau la premire occurrence de ancien sur la
ligne d'vnement. Tout dlimiteur peut tre utilis la place de /.
Le dernier dlimiteur est facultatif si c'est le dernier caractre
de la ligne d'vnement. Le dlimiteur peut tre protg dans ancien
et nouveau avec une seule contre-oblique. Si & apparat dans nou-
veau, il est remplac par ancien. Une seule contre-oblique prot-
gera le &. Si ancien est vide, il est mis au dernier ancien sub-
stitu ou si aucune substitution n'a eu lieu prcdemment, la
dernire chane dans une recherche !?chane[?].
& Rpter la substitution prcdente.
g Conduit l'application des changements sur la ligne d'vnement
entire. Ceci est utilis conjointement :s (par exemple
:gs/ancien/nouveau/ ) ou :& . Si utilis avec :s , tout dlimi-
teur peut tre utilis la place de / et le dernier dlimiteur est
facultatif si c'est le dernier caractre de la ligne d'vnement.
Un a peut tre utilis en tant que synonyme de g.
G Appliquer le modificateur s suivant une fois chacun des mots
dans la ligne d'vnements.
Sauf indication contraire, chaque commande interne dcrite dans ce para-
graphe comme acceptant des options prcdes de - accepte galement la
notation -- pour signifier la fin des options. Par exemple, les comman-
des internes :, true, false et test n'acceptent aucune option.
: [arguments]
Sans effet ; cette commande ne fait rien d'autre que dvelopper
les arguments et effectuer toute redirection spcifie. Un code
final de zro est renvoy.
. fichier [arguments]
source fichier [arguments]
Lire et excuter les commandes contenues dans fichier avec
l'environnement de l'interprteur courant, puis renvoyer l'tat
final de la dernire commande excute dans fichier. Si le nom du
fichier ne contient pas de barre oblique, les chemins d'accs
contenus dans PATH sont parcourus pour rechercher le rpertoire
contenant le fichier. Lorsqu'il est recherch dans PATH le
fichier n'a pas besoin d'tre excutable. Lorsque bash n'est pas
en mode posix, le rpertoire de travail courant est finalement
examin si aucun fichier n'est trouv dans PATH. Si l'option
sourcepath de la commande interne shopt est dsactive, le PATH
n'est pas parcouru. Si des arguments sont fournis, ils sont
transmis dans les paramtres positionnels lorsque le fichier est
excut. Sinon les paramtres positionnels ne sont pas modifis.
L'tat renvoy est l'tat de la dernire commande termine au sein du
script (0 si aucune commande n'a t excute) 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 dfinis, 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 dveloppement de l'alias. Pour chacun
des noms pour lesquels aucune valeur n'est fournie dans la liste
d'arguments, le nom et la valeur de l'alias sont affichs. La
commande alias renvoie vrai, moins qu'ait t indiqu un nom pour
lequel aucun alias n'a t dfini.
bg [tche ...]
Reprend en arrire-plan chaque tche suspendue, comme si elle
avait t lance avec &. Si aucune tche n'est prcise, la notion
d'interprteur de tche courante est utilise. bg tche renvoie 0
moins que le contrle des tches soit dsactiv, ou, quand le con-
trle des tches est activ, qu'une tche spcifie n'ait pas t trouve
ou ait t lance sans contrle de tches.
bind [-m jeu_de_raccourcis] [-lpsvPSV]
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
Affiche les associations de touches readline courantes et les
raccourcis de fonctions, associe une suite de touches une fonc-
tion ou une macro readline ou cre une variable readline. Chaque
argument qui n'est pas une option est une commande comme elle
devrait apparatre dans .inputrc, mais chaque raccourci ou com-
mande doit tre fourni comme un argument indpendant ; 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 ultrieurs. Les noms
de jeux_de_raccourcis possibles sont emacs, emacs-stan-
dard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command et
vi-insert. vi est quivalent vi-command ; emacs est quiv-
alent emacs-standard.
-l Afficher la liste des noms de toutes les fonctions read-
line.
-p Affiche les noms des fonctions readline et leurs raccour-
cis de faon pouvoir les relire.
-P Affiche les noms des fonctions readline et leurs raccour-
cis.
-v Affiche les noms des variables readline et leurs valeurs
de faon pouvoir les relire.
-V Affiche les noms des variables readline et leurs valeurs.
-s Afficher les suites de touches readline associes aux
macros et les chanes correspondantes, de faon pouvoir
les relire.
-S Afficher les suites de touches readline associes aux
macros et les chanes correspondantes.
-f fichier
Lire les raccourcis clavier dans fichier.
-q fonction
Rechercher les touches permettant d'appeler la fonction
indique.
-u fonction
Dissocier toutes les touches associes fonction.
-r suite_de_touches
Supprimer tout raccourci courant pour la
suite_de_touches.
-x suite_de_touches:commande_de_l'interprteur
Conduit l'excution de commande_de_l'interprteur ds que
la suite de touches est saisie.
La valeur renvoye est 0, moins qu'une option inconnue soit
indique ou qu'une erreur se soit produite.
break [n]
Sortir d'une boucle for, while, until ou select. Si n est
spcifi, sortir de n niveaux de boucles. n doit tre >= 1. Si n
est suprieur au nombre de boucles imbriques, on sort de l'ensem-
ble d'entre elles. La valeur renvoye est 0, moins que l'inter-
prteur ne soit pas en train d'excuter une boucle lorsque break
est excut.
builtin commande_interne [arguments]
Excuter la commande interne de l'interprteur indique, en lui
passant les arguments, puis renvoyer son tat final. Ceci est
utile lorsqu'on dfinit une fonction ayant le mme nom qu'une com-
mande interne, mais qu'on a besoin d'appeler cette commande
depuis l'intrieur de la fonction. On redfinit souvent la com-
mande interne cd de cette faon. L'tat renvoy est faux si la com-
mande_interne n'est pas une commande interne de l'interprteur.
cd [-L|-P] [rp]
Remplacer le rpertoire de travail courant par rp. La variable
HOME est la valeur par dfaut de rp. La variable CDPATH dfinit
des chemins de recherche pour trouver le rpertoire contenant rp.
Les rpertoires possibles y sont fournis dans une liste spares
par des deux-points : . Un nom de rpertoire vide dans CDPATH
est quivalent au rpertoire courant, c'est--dire . . Si rp com-
mence par une barre oblique (/), alors CDPATH n'est pas utilis.
L'option -P dit de n'employer que la structure de rpertoires
physiques au lieu de suivre les liens symboliques (voir aussi
l'option -P de la commande interne set) l'option -L force
suivre les liens symboliques. Un argument - est quivalent $OLD-
PWD. Si un nom de rpertoire non vide de CDPATH est utilis ou si
- est le premier argument et si le changement de rpertoire rus-
sit, le chemin absolu du nouveau rpertoire de travail est crit
sur la sortie standard. La valeur renvoye est vrai si le change-
ment de rpertoire a russi ; faux sinon.
caller [expr]
Renvoie le contexte de tout appel de sous-programme actif (une
fonction de l'interprteur ou un script lanc avec les commandes
internes . ou source). Sans expr, caller affiche le numro de
ligne et le nom de fichier du sous-programme courant. Si un
entier positif est fourni comme expr, caller affiche le numro de
ligne, le nom du sous-programme et le nom de fichier source cor-
respondant la position dans la pile d'appels d'excution
courante. Cette information supplmentaire peut tre utilise, par
exemple, pour afficher une trace de la pile. La trame courante
est la trame 0. La valeur renvoye est 0, moins que l'interpr-
teur ne soit pas en train d'excuter un sous-programme ou que
expr ne corresponde pas une position correcte dans la pile
d'appels.
command [-pVv] commande [arguments ...]
Lancer la commande avec les arguments indiqus, mais en simplifi-
ant le processus habituel de recherche des commandes. Seules les
commandes internes et les commandes trouves dans PATH seront
excutes. Si l'option -p est indique, la recherche de la commande
est effectue en utilisant une valeur par dfaut pour PATH garan-
tissant de trouver tous les utilitaires standards. Si soit
l'option -V soit l'option -v est fournie, une description de la
commande est affiche. 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 trouve et 1 sinon. Si aucune option n'est
fournie et si une erreur s'est produite ou si la commande ne
peut tre trouve, l'tat final est 127. Sinon, l'tat final de la
commande interne est l'tat final de commande.
compgen [option] [mot]
Produit les correspondances des compltements possibles pour mot
selon les options, qui peuvent tre toute option accepte par la
commande interne complete l'exception de -p et -r et crit le
rsultat sur la sortie standard. Lorsqu'on utilise les options -F
ou -C, les diverses variables de l'interprteur cres par les out-
ils de compltement programmables, lorsque disponibles, n'auront
pas de valeurs utilisables.
Les correspondances seront produites de la mme faon que si le
programme de compltement programmable les avait produites
directement partir d'une spcification de compltement avec les
mmes attributs. Si mot est spcifi, seules les compltements qui
correspondent mot sont affichs.
La valeur renvoye est vrai, moins qu'une option incorrecte ait
t fournie ou qu'aucune correspondance n'ait t produite.
complete [-abcdefgjksuv] [-o option-compltement] [-A action] [-G glob-
pat] [-W liste_de_mots] [-P prefix] [-S suffix]
[-X motif_filtre] [-F fonction] [-C commande] nom [nom ...]
complete -pr [nom ...]
Spcifie comment les arguments de chaque nom doivent tre complts.
Si l'option -p est fournie ou si aucune option n'est fournie,
les spcifications de compltement existantes sont affiches de
telle faon qu'elles puissent tre rutilises comme entre. L'option
-r retire une spcification de compltement chaque nom fourni ou,
si aucun nom n'est fourni, toutes les spcifications de complte-
ment.
Le processus d'application de ces spcifications de compltement
lorsqu'un compltement de mot est tent est dcrit plus haut dans
Compltement programmable.
Les autres options, si spcifies, ont les significations suiv-
antes. Les arguments des options -G, -W et -X (et, si ncessaire,
les options -P et -S) devraient tre protges pour leur viter le
dveloppement avant que la commande interne complete soit appele.
-o option-compltement
L'option-compltement commande plusieurs aspects du com-
portement des spcifications de compltement au-del de la
simple production de compltement. option-compltement
peut tre l'une des suivantes :
bashdefault
Effectuer le reste des compltements par dfaut de
bash si la spcification de compltement ne pro-
duit aucune correspondance.
default Utiliser le compltement de nom de fichier par
dfaut de readline si la spcification de complte-
ment ne produit aucune correspondance.
dirnames
Effectuer le compltement de nom de rpertoire si
la spcification de compltement ne produit aucune
correspondance.
filenames
Indiquer readline que la spcification de com-
pltement produit des noms de fichiers, ainsi il
peut effectuer tout traitement spcifique aux
noms de fichiers (comme ajouter une barre
oblique aux noms de rpertoires, supprimer les
espaces de fin de ligne). Destine tre utilise
avec les fonctions de l'interprteur.
nospace Indiquer readline de ne pas ajouter une espace
(comportement par dfaut) aux mots complts en fin
de ligne.
plusdirs
Aprs que toutes les correspondances dfinies par
la spcification de compltement ont t produites,
une tentative de compltement de nom de rpertoire
est effectue et toutes les correspondances sont
ajoutes aux rsultats des autres actions.
-A action
L'action peut tre l'une des suivantes pour produire une
liste des compltements possibles :
alias Noms d'alias. Peut galement tre spcifie avec -a.
arrayvar
Noms des variables de type tableau.
binding Noms des raccourcis clavier readline.
builtin Noms des commandes internes de l'interprteur.
Peut galement tre spcifie avec -b.
command Nom des commandes. Peut galement tre spcifie
avec -c.
directory
Noms des rpertoires. Peut galement tre spcifie
avec -d.
disabled
Noms des commandes internes de l'interprteur
dsactives.
enabled Noms des commandes internes de l'interprteur
actives.
export Noms des variables de l'interprteur exportes.
Peut galement tre spcifie avec -e.
file Noms des fichiers. Peut galement tre spcifie
avec -f.
function
Noms des fonctions de l'interprteur.
group Noms des groupes. Peut galement tre spcifie avec
-g.
helptopic
Sujets de l'aide accepts par la commande interne
help.
hostname
Noms de machines tels qu'ils sont extraits du
fichier spcifi par la variable de l'interprteur
HOSTFILE.
job Noms des tches si le contrle des tches est
actif. Peut galement tre spcifie avec -j.
keyword Mots rservs de l'interprteur. Peut galement tre
spcifie avec -k.
running Noms des tches en cours d'excution si le contrle
des tches est actif.
service Noms des services. Peut galement tre spcifie
avec -s.
setopt Arguments corrects de l'option -o de la commande
interne set.
shopt Noms des options d'interprteur acceptes par la
commande interne shopt.
signal Noms des signaux.
stopped Noms des tches suspendues si le contrle des
tches est actif.
user Noms des utilisateurs. Peut galement tre spcifie
avec -u.
variable
Noms de toutes les variables de l'interprteur.
Peut galement tre spcifie avec -v.
-G globpat
Le motif de dveloppement des noms de fichiers globpat
est dvelopp pour produire les compltements possibles.
-W liste_de_mots
La liste_de_mots est dcoupe en utilisant les caractres
de la variable spciale IFS comme dlimiteurs et chaque
mot rsultant est dvelopp. Les compltements possibles
sont les lments de la liste rsultante qui correspondent
au mot en cours de compltement.
-C commande
La commande est excute dans un environnement de
sous-interprteur et sa sortie est utilise comme complte-
ments possibles.
-F fonction
La fonction de l'interprteur est excute dans l'interpr-
teur courant. Lorsqu'elle finit, les compltements possi-
bles sont rcuprs partir de la valeur de la variable de
type tableau COMPREPLY.
-X motif_filtre
motif_filtre est un motif utilis pour le dveloppement
des noms de fichiers. Il est appliqu la liste des com-
pltements possibles produite par les options et argu-
ments prcdents et chaque compltement correspondant
motif_filtre est supprim de la liste. Un ! au dbut du
motif_filtre inverse le motif ; dans ce cas, tout com-
pltement qui ne correspond pas motif_filtre est sup-
prim.
-P prefix
prefix est ajout au dbut de chaque compltement possible
aprs que toutes les autres options ont t appliques.
-S suffix
suffix est ajout chaque compltement possible aprs que
toutes les autres options ont t appliques.
La valeur renvoye est vrai, moins qu'une option incorrecte ait
t fournie, qu'une option comme -p ou -r ait t fournie sans un
nom d'argument, qu'une tentative ait t faite pour supprimer une
spcification de compltement pour un nom pour lequel il n'existe
pas de spcification, ou bien qu'une erreur soit survenue lors de
l'ajout d'une spcification de compltement.
continue [n]
Reprendre l'excution l'itration suivante d'une boucle for,
while, until ou encore select. Si n est indiqu, reprendre
l'excution la n-ime boucle imbrique. n doit tre >= 1. Si n est
suprieur au nombre de boucles imbriques, l'excution reprend la
boucle la plus externe (la boucle au sommet ). La valeur ren-
voye est 0, moins que l'interprteur ne soit pas en train
d'excuter une boucle lorsqu'il rencontre l'instruction continue.
declare [-afFirtx] [-p] [nom[=valeur] ...]
typeset [-afFirtx] [-p] [nom[=valeur] ...]
Dclarer des variables et/ou leur fournir des attributs. Si aucun
nom n'est indiqu alors afficher les valeurs des variables.
L'option -p affichera les attributs et les valeurs de chaque
nom. Quand -p est utilise, les options supplmentaires sont
ignores. L'option -F empche l'affichage des dfinitions de fonc-
tions ; seuls le nom de la fonction et ses attributs sont
affichs. Si l'option d'interprteur extdebug est active en util-
isant shopt, le nom du fichier source et le numro de ligne o la
fonction est dfinie sont aussi affichs. L'option -F implique -f.
Les options suivantes permettent de restreindre l'affichage aux
variables dotes de certains attributs ou de fixer les attributs
des variables :
-a Chaque nom est une variable de type tableau (voir
Tableaux plus haut).
-f Utiliser seulement les noms de fonctions.
-i La variable est traite comme un entier ; l'valuation
arithmtique (voir VALUATION ARITHMTIQUE) est effectue
lorsqu'une valeur est affecte la variable.
-r Rend les noms accessibles en lecture seule. Des valeurs
ne pourront alors plus tre affectes ces noms par des
affectations ultrieures. Ils ne pourront pas non plus tre
dtruits.
-t Donne chaque nom l'attribut trace. Les fonctions traces
hritent des captures de DEBUG et RETURN de l'interprteur
appelant. L'attribut trace n'a pas de signification
spciale pour les variables.
-x Marque les noms pour qu'ils soit exports dans l'environ-
nement des commandes ultrieures.
En utilisant + la place de - , l'attribut correspondant est
dsactiv, l'exception que +a ne peut pas tre utilis pour dtruire
une variable tableau. Quand utilis dans une fonction, chacun des
noms devient local, comme avec la commande local. Si un nom de
variable est suivi par =valeur, la valeur de cette variable est
mise valeur. La valeur renvoye est 0, moins qu'une option
incorrecte soit rencontre, qu'une tentative soit faite de dfinir
une fonction en utilisant ``-f foo=bar'', qu'une tentative soit
faite d'affecter une valeur une variable en lecture seule,
qu'une tentative soit faite d'affecter une valeur une variable
tableau sans employer la syntaxe d'affectation compose (voir
Tableaux plus haut), qu'un des noms ne soit pas un nom correct
pour une variable de l'interprteur, qu'une tentative soit faite
de supprimer l'attribut lecture-seule d'une variable en lecture
seule, ou qu'une tentative soit faite de supprimer l'attribut
tableau d'une variable tableau, ou qu'une tentative soit faite
avec -f d'afficher une fonction inexistante.
dirs [-clpv] [+n] [-n]
Affiche la liste des rpertoires actuellement mmoriss.
L'affichage par dfaut se fait sur une seule ligne, les noms de
rpertoires tant spars par des espaces. On ajoute des rpertoires
dans cette liste avec la commande pushd et on peut en supprimer
avec la commande popd.
+n Affiche le n-ime lment de la liste fournie par dirs,
lorsqu'appel sans options, en comptant partir de la
gauche en commenant zro.
-n Affiche le n-ime lment de la liste fournie par dirs,
lorsqu'appel sans options, en comptant partir de la
droite en commenant zro.
-c Effacer la liste des rpertoires en les supprimant tous.
-l Produit une liste plus longue ; le format d'affichage par
dfaut utilise le tilde pour reprsenter le rpertoire
d'accueil.
-p Afficher la pile des rpertoires avec un lment par ligne.
-v Afficher la pile des rpertoires avec un lment par ligne,
en prfixant chaque entre avec son numro d'indice dans la
pile.
La valeur renvoye est 0, moins qu'une option incorrecte ait t
fournie ou que l'indice n dpasse la longueur de la pile des
rpertoires.
disown [-ar] [-h] [tche ...]
Sans options, chaque tche est supprime de la table des tches
actives. Si l'option -h est indique, chaque tche n'est pas sup-
prime de la table mais marque pour que le signal SIGHUP ne lui
soit pas envoy si l'interprteur reoit un signal SIGHUP. Si
aucune tche n'est indique et que ni l'option -a ni l'option -r
n'est fournie, la tche courante est concerne. Si aucune tche
n'est fournie, l'option -a signifie la suppression ou le mar-
quage de toutes les tches ; l'option -r sans l'argument tche
restreint les oprations aux tches en cours d'excution. La valeur
renvoye est 0, moins que tche ne spcifie pas une tche correcte.
echo [-neE] [arguments ...]
Affiche les arguments, spars par des espaces, suivis par un saut
de ligne. La valeur renvoye est toujours 0. Si -n est spcifi, le
saut de ligne final est supprim. Si l'option -e est indique,
l'interprtation des caractres suivants d'chappement par une con-
tre-oblique est active. L'option -E dsactive l'interprtation de
ces caractres d'chappement, mme sur les systmes o ils sont
interprts par dfaut. L'option d'interprteur xpg_echo peut tre
utilise dynamiquement pour dterminer si echo dveloppe ou non par
dfaut ces caractres d'chappement. echo n'interprte pas -- comme
signifiant la fin des options. echo reconnat les suites de car-
actres d'chappement suivantes :
\a alerte (alarme)
\b effacement arrire (backspace)
\c suppression du saut de ligne final
\e caractre d'chappement
\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 caractre 8 bits dont la valeur en octal vaut nnn (zro
trois chiffres octaux)
\xHH le caractre 8 bits dont la valeur hexadcimale est HH (un
deux symboles hexadcimaux)
enable [-adnps] [-f fichier] [nom ...]
Active ou dsactive les commandes internes de l'interprteur.
Dsactiver une commande interne permet d'excuter une commande
disque ayant le mme nom qu'une commande interne de l'interpr-
teur, sans avoir spcifier un chemin d'accs complet, mme quand
l'interprteur recherche normalement les commandes internes avant
les commandes du disque. Si -n est utilis, chaque nom indiqu est
dsactiv, sinon ils sont activs. Par exemple, pour utiliser le
programme binaire test qui se trouve dans PATH plutt que la com-
mande 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 systmes qui le permet-
tent. L'option -d permet de supprimer une commande interne
charge prcdemment avec -f. Si aucun argument nom n'est indiqu ou
si l'option -p est fournie, une liste des commandes internes de
l'interprteur est affiche. Sans autre option, la liste est celle
des commandes internes actives de l'interprteur. Si -n est
fournie, seules les commandes dsactives sont affiches. Si -a est
fournie, la liste de toutes les commandes est affiche, avec une
indication des activations et inactivations. Si -s est fournie,
la sortie est limite aux commandes internes spciales POSIX. La
valeur renvoye est 0, moins que nom ne soit pas une commande
interne ou qu'il y ait une erreur au chargement d'une nouvelle
commande interne d'un objet partag.
eval [arguments ...]
Les arguments sont lus et regroups en une seule commande simple.
Cette commande est alors lue et excute par l'interprteur et son
tat final est renvoy comme valeur de la commande eval. S'il n'y
a pas d'arguments ou uniquement des arguments vides, eval ren-
voie 0.
exec [-cl] [-a nom] [commande [arguments]]
Si une commande est indique, elle remplace l'interprteur. Aucun
nouveau processus n'est cr. Les arguments deviennent ceux de la
commande. Si l'option -l est fournie, l'interprteur place un
tiret en guise de zro-ime argument fourni a la commande. C'est
ce que fait login. L'option -c conduit l'excution de la com-
mande avec un environnement vide. Si l'option -a est fournie,
l'interprteur transmet le nom comme zro-ime argument. Si la com-
mande ne peut tre excute pour une certaine raison, un
interprteur non interactif termine, moins que l'option de
l'interprteur execfail soit active, auquel cas une erreur est
renvoye. Un interprteur interactif renvoie l'erreur si le
fichier ne peut pas tre excut. Si aucune commande n'est indique,
les ventuelles redirections sont mises en place dans l'interpr-
teur courant et l'tat renvoy est 0. S'il y a une erreur de redi-
rection, l'tat renvoy est 1.
exit [n]
Conduit la terminaison de l'interprteur avec un tat de n. Si n
est omis, l'tat final est celui de la dernire commande excute.
Une capture sur EXIT est excute avant que l'interprteur termine.
export [-fn] [nom[=mot]] ...
export -p
Les noms fournis sont marqus pour tre exports automatiquement
dans l'environnement des commandes excutes par la suite. Si
l'option -f est indique, les noms se rapportent des fonctions.
Si aucun nom n'est donn ou si l'option -p est fournie, une liste
est affiche indiquant l'ensemble des noms exports dans cet
interprteur. L'option -n conduit supprimer l'attribut d'exporta-
tion de chacune des variables nommes. Si un nom de variable est
suivi par =mot, la valeur de la variable est mise
mot. export renvoie un tat final de 0, moins qu'une option
incorrecte soit rencontre ou qu'un des noms ne soit pas un nom
correct de variable de l'interprteur ou que l'option -f soit
fournie avec un nom qui n'est pas une fonction.
fc [-e diteur] [-nlr] [premier] [dernier]
fc -s [motif=nouveau] [commande]
Commandes pingles (Fix Command). Dans la premire forme, une
plage de commandes, entre la premire et la dernire, est slec-
tionn dans la file d'historique. La premire et la dernire peu-
vent tre spcifies sous forme de chanes (pour trouver la dernire
commande commenant par cette chane) ou sous forme numrique (un
indice dans la file d'historique o un nombre ngatif est utilis
comme dcalage par rapport au numro de la commande courante). Si
la dernire n'est pas spcifie, elle est mise la commande courante
si l'on veut afficher la liste (ainsi ``fc -l -10'' affiche les
10 dernires commandes) et qu'il s'agit de la mme que la premire
sinon. Si la premire n'est pas spcifie, elle est mise la com-
mande prcdente pour une dition et -16 pour l'affichage de
liste.
L'option -n supprime l'affichage des numros dans la liste.
L'option -r inverse l'ordre des commandes. Si l'option -l est
indique, les commandes sont affiches sur la sortie standard.
Sinon, l'diteur indiqu est appel avec un fichier contenant les
commandes slectionnes. 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 affiches puis
excutes.
Dans la seconde forme, la commande est r-excute aprs avoir rem-
plac chaque instance du motif par nouveau. Un alias utile pour
ceci est ``r="fc -s"'', ainsi en tapant ``r cc'' on relance la
dernire commande commenant par ``cc'' et en tapant ``r'' on
r-excute la commande prcdente.
Lorsque la premire forme est utilise, la valeur renvoye est 0,
moins qu'une option incorrecte soit trouve ou que premire ou
dernire indiquent des lignes d'historique hors d'atteinte. Si
l'option -e est fournie, la valeur renvoye est celle de la
dernire commande excute 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-excute, moins que com-
mande ne spcifie pas une ligne correcte de l'historique, auquel
cas fc renvoie un chec.
fg [tche]
Reprendre la tche au premier plan et en faire la tche courante.
Si aucune tche n'est prcise, l'interprteur utilise la notion de
tche courante. La valeur renvoye est celle de la commande place
au premier plan ou un chec si le contrle des tches est dsactiv
ou lorsque le contrle des tches est activ, si tche ne spcifie
pas une tche correcte ou si tche spcifie une tche qui a t lance
sans contrle des tches.
getopts chane_d_options nom [arguments]
getopts est utilis par les scripts d'interprteur pour analyser
les paramtres positionnels. La chane_d_options contient l'ensem-
ble des caractres d'options reconnatre ; si un caractre est
suivi par deux-points (:), l'option est cense comprendre un
argument, qui devrait en tre spar par une espace. Les caractres
deux-points et le point d'interrogation ne peuvent pas tre
utiliss comme caractres d'option. chaque appel, getopts place
l'option suivante dans la variable de l'interprteur dont le nom
est fourni, en la crant si elle n'existe pas et l'indice de
l'argument suivant traiter dans la variable OPTIND. OPTIND est
initialise 1 chaque appel d'un interprteur ou d'un script.
Quand une option ncessite un argument, getopts place cet argu-
ment dans la variable OPTARG. L'interprteur ne rinitialise pas
OPTIND automatiquement ; il faut le faire manuellement entre des
appels multiples getopts au sein du mme appel d'interprteur si
un nouveau jeu de paramtres doit tre utilis.
Lorsque la fin des options est atteinte, getopts termine avec
une valeur renvoye strictement suprieure zro. OPTIND est mis
l'indice du premier argument non-option et nom est mis ?.
getopts analyse en principe les paramtres positionnels, mais si
plus d'arguments sont indiqus, getopts analysera ces derniers
la place.
getopts peut signaler des erreurs de deux faons. Si le premier
caractre de la chane_d_options est un deux-points, les erreurs
sont signales de faon silencieuse. Lors d'un fonctionnement nor-
mal, des messages de diagnostic sont affichs si une option est
incorrecte ou s'il manque un argument d'option. Si la variable
OPTERR est mise 0, aucun message d'erreur ne sera affich, mme
si le premier caractre de la chane_d_options n'est pas un
deux-points.
Si une option incorrecte est rencontre, getopts met un point
d'interrogation (?) dans la variable nom, affiche un message
d'erreur (s'il n'est pas en mode silencieux) et dtruit la vari-
able OPTARG. Si getopts fonctionne en mode silencieux, le car-
actre d'option est plac dans OPTARG et aucun message de diagnos-
tic n'est affich.
Lorsqu'un argument d'option ncessaire est absent et si getopts
n'est pas silencieux, un point d'interrogation (?) est plac dans
la variable nom, OPTARG est dtruite et un message de diagnostic
est affich. Si getopts est silencieux, un deux-points (:) est
plac dans la variable nom et OPTARG est mis l'option monocarac-
tre trouve.
getopts renvoie vrai si une option, spcifie ou non, est trouve.
Il renvoie faux si la fin des options est atteinte ou si une
erreur se produit.
hash [-lr] [-p fichier] [-dt] [nom]
Pour chaque nom fourni, le chemin d'accs complet de la commande
est dtermin, en examinant les rpertoires de $PATH et mmoris. Si
l'option -p est fournie, aucune recherche de chemin d'accs n'est
effectue et le fichier est utilis comme chemin d'accs complet
pour la commande. L'option -r conduit l'interprteur oublier
tous les emplacements mmoriss. L'option -d conduit l'interprteur
oublier tous les emplacements mmoriss de chaque nom. Si l'option
-t est fournie, le chemin d'accs complet de chaque nom corre-
spondant est affich. Si plusieurs arguments nom sont fournis
avec -t, le nom est affich avant chaque chemin d'accs complet
hach. L'option -l conduit afficher la sortie dans un format
rutilisable en entre. Si aucun argument n'est indiqu ou si
seulement -l est fournie, des informations sur les commandes
mmorises sont affiches. La valeur renvoye est vrai, moins que
nom ne soit pas trouv ou qu'une option incorrecte soit fournie.
help [-s] [motif]
Affiche 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 contrle de l'interprteur
est affiche. L'option -s restreint l'affichage de l'information
un court synopsis d'utilisation. L'tat renvoy est 0, moins
qu'aucune commande ne corresponde au motif.
history [n]
history -c
history -d nombre
history -anrw [fichier]
history -p argument [argument ...]
history -s argument [argument ...]
Sans options, affiche la liste des commandes de la file d'his-
torique, avec les numros de ligne. Les lignes marques avec un *
ont t modifies. Un argument n permet de n'afficher que les n
dernires lignes. Si la variable de l'interprteur HISTTIMEFORMAT
existe et n'est pas vide, elle est utilise comme une chane de
format pour strftime(3) afin d'afficher l'horodatage associ
chaque lment de l'historique affich. Aucun blanc intercalaire
n'est affich entre l'horodatage ainsi mis en forme et la ligne
de l'historique. Si un argument fichier est fourni, il est
utilis comme nom de fichier d'historique ; sinon la valeur de
HISTFILE est utilise. Les options, si fournies, ont les signifi-
cations suivantes :
-c Effacer la file de l'historique en supprimant tous les
lments.
-d nombre
Dtruire l'lment de l'historique la position nombre.
-a Ajouter les nouvelles lignes d'historiques (celles cres
depuis le dbut de la session courante 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 courante. Il s'agit des lignes qui
ont t ajoutes dans le fichier d'historique depuis le dbut
de la session bash.
-r Lire le contenu du fichier et l'utiliser comme historique
courant.
-w crire dans le fichier l'historique actuel, en crasant le
contenu prcdent.
-p Effectuer la substitution sur les arguments suivants et
afficher le rsultat sur la sortie standard. Ne pas
mmoriser les rsultats dans la file d'historique. Chaque
argument doit tre protg pour dsactiver le dveloppement
normal de l'historique.
-s Conserver les arguments dans la file d'historique comme
un unique lment. La dernire commande de la file d'his-
torique est supprime avant que les arguments soient
ajouts.
Si la variable HISTTIMEFORMAT existe, l'information d'horodatage
associe
chaque lment de l'historique est crite dans le fichier d'his-
torique. La valeur renvoye est 0, moins qu'une option incor-
recte soit fournie, qu'une erreur se produise durant la lecture
ou l'criture du fichier, qu'un nombre incorrect soit fourni
comme argument -d ou que le dveloppement de l'historique fourni
en argument -p choue.
jobs [-lnprs] [ tche ... ]
jobs -x commande [ arguments ... ]
La premire forme affiche la liste des tches actives. Les options
ont les significations suivantes :
-l Affiche les PID, en plus des informations normales.
-p N'affiche que le PID du meneur du groupe de processus de
la tche.
-n N'affiche de l'information que sur les tches dont l'tat a
chang depuis la dernire notification de leur tat l'util-
isateur.
-r Restreint l'affichage aux tches en cours d'excution.
-s Restreint l'affichage aux tches suspendues.
Si une tche est indique, l'affichage est restreint aux informa-
tions sur cette tche. L'tat renvoy est 0, moins qu'une option
incorrecte soit rencontre ou qu'une tche incorrecte soit
fournie.
Si l'option -x est fournie, jobs va remplacer toute tche trouve
dans la commande ou dans ses arguments avec les Process Group ID
correspondant, puis il excutera la commande en lui transmettant
les arguments et en renvoyant son tat final.
kill [-s signal | -n num-signal | -signal] [pid | tche] ...
kill -l [signal | tat_final]
Envoyer le signal indiqu par signal ou num-signal aux processus
spcifis par pid ou par tche. signal est soit sous la forme de
nom de signal (indiffrent la casse), comme SIGKILL (avec ou
sans le prfixe SIG ), soit sous forme numrique ; num-signal est
un numro de signal. Si signal est absent, SIGTERM est suppos par
dfaut. Un argument -l affiche la liste des noms de signaux. Si
des arguments sont fournis quand -l est indiqu, les noms des
signaux correspondant aux arguments sont affichs et l'tat renvoy
est 0. L'argument tat_final de l'option -l est un nombre spcifi-
ant soit un numro 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 succs ou faux si une erreur s'est produite ou si
une option incorrecte a t rencontre.
let argument [argument ...]
Chaque argument est une expression arithmtique valuer (voir
VALUATION ARITHMTIQUE ). 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 nomme nom est cre et
la valeur lui est affecte. L'option peut tre toute option
accepte par declare. Quand local est utilis dans une fonction,
la variable nom possde une porte visible restreinte cette fonc-
tion et ses enfants. Sans oprandes, local affiche la liste des
variables locales sur la sortie standard. Une utilisation de
local en dehors des fonctions est errone. La valeur renvoye est
0, moins que local soit utilis en dehors d'une fonction, qu'un
nom incorrect soit fourni ou que nom soit une variable en lec-
ture seule.
logout Termine un interprteur de connexion.
popd [-n] [+n] [-n]
Enlve des lments de la pile des rpertoires. Sans arguments, seul
le rpertoire du sommet de la pile est limin et un cd est effectu
en direction du nouveau rpertoire au sommet. Les argument, si
fournis, ont les significations suivantes :
+n Supprime le n-ime lment de la liste affiche par dirs, en
comptant depuis la gauche partir de zro. Par exemple :
``popd +0'' enlve le premier rpertoire, ``popd +1'' le
second.
-n Supprime le n-ime lment de la liste affiche par dirs, en
comptant depuis la droite partir de zro. Par exemple :
``popd -0'' supprimer le dernier rpertoire et ``popd -1''
l'avant-dernier.
-n Empche le changement normal de rpertoire lors de la sup-
pression d'un rpertoire de la pile. On ne fait que manip-
uler la pile.
Si la commande popd russit, un dirs est effectu et l'tat renvoy
est 0. popd renvoie faux si une option incorrecte est trouve, si
la pile de rpertoires est vide, si on a indiqu un rpertoire
absent de la pile ou si le changement de rpertoire a chou.
printf [-v var] format [arguments]
crit les arguments mis en forme sur la sortie standard sous le
contrle du format. Ce format est une chane contenant trois types
de caractres : normaux, qui sont simplement copis sur la sortie
standard, les caractres d'chappement qui sont convertis puis
copis sur la sortie standard et les spcifications de format qui
conduisent chacune l'affichage des arguments successifs. En plus
des formats standards de printf(1), %b conduit printf dvelopper
les suites de caractres d'chappement par contre-oblique se trou-
vant dans l'argument correspondant (except que \c termine la
sortie, que les contre-obliques dans \', \" et \? ne sont pas
supprimes et que les suites de caractres d'chappement pour les
nombres en octal commenant par \0 peuvent contenir jusqu' quatre
chiffres) et %q conduit printf afficher l'argument correspondant
dans un format rutilisable en entre de l'interprteur.
L'option -v conduit affecter la sortie la variable var plutt
que de l'afficher sur la sortie standard.
Le format est rutilis jusqu' consommer tous les arguments. Si le
format demande plus d'arguments que fournis, les spcifications
supplmentaires se comportent comme si des valeurs zro ou des
chanes vides, comme ncessaire, avaient t fournies. La valeur
renvoye est zro en cas de succs, diffrente de zro en cas d'chec.
pushd [-n] [rp]
pushd [-n] [+n] [-n]
Ajoute un rpertoire au sommet de la pile des rpertoires ou
effectue une rotation dans la pile, en ramenant le rpertoire
courant au sommet. Sans argument, cette commande change les deux
rpertoires au sommet et renvoie 0, moins que la pile soit vide.
Les arguments, si fournis, ont les significations suivantes :
+n Effectue une rotation dans la pile, de faon amener au
sommet le n-ime rpertoire (de la liste affiche par dirs
en comptant partir de la gauche et en commenant zro).
-n Effectue une rotation dans la pile, de faon amener au
sommet le n-ime rpertoire (en comptant partir de la
droite dans la liste affiche par dirs, en commenant
zro).
-n Empche le changement normal de rpertoire lors d'un ajout
dans la pile. Seule la pile est manipule.
rp Ajoute le rpertoire rp au sommet de la pile de rpertoires
en en faisant le nouveau rpertoire de travail courant.
Si la commande pushd russit, un dirs est aussi effectu. Si on
utilise la premire forme, pushd renvoie 0 sauf si le dplacement
vers rp choue. Avec la seconde forme, pushd renvoie 0, moins
que la pile soit vide, que soit spcifi un lment inexistant dans
la pile ou que le changement de rpertoire vers le nouveau rper-
toire spcifi choue.
pwd [-LP]
Affiche le chemin d'accs absolu au rpertoire 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 active. Si l'option -L est utilise, le chemin affich
peut contenir des liens symboliques. L'tat renvoy est 0, moins
qu'une erreur se soit produite durant la lecture du nom du rper-
toire courant ou qu'une option incorrecte soit fournie.
read [-ers] [-u fd] [-t dlai] [-a nom_t] [-p invite] [-n nb_car] [-d
dlimiteur] [nom ...]
Une ligne est lue depuis l'entre standard ou partir du descrip-
teur de fichier fd fourni en argument l'option -u, puis le pre-
mier 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
sparateurs affects au dernier nom. S'il y a moins de mots lus
dans le flot d'entre que de variables, des valeurs vides sont
affectes celles restantes. Les caractres contenus dans la vari-
able IFS sont utiliss pour dcouper la ligne en mots. Le caractre
contre-oblique (\) permet de supprimer toute signification
spciale pour le caractre suivant et autorise la continuation de
lignes. Les options, si fournies, ont les significations suiv-
antes :
-a nom_t
Les mots sont affects aux indices successifs d'une vari-
able tableau de nom nom_t, en commenant 0. nom_t est
dtruit avant que de nouvelles valeurs soient affectes.
Les autres arguments nom sont ignors.
-d dlimiteur
Le premier caractre de dlimiteur est utilis pour terminer
la ligne de saisie, plutt qu'un saut de ligne.
-e Si l'entre standard provient d'un terminal, la biblio-
thque readline (voir READLINE plus haut) est utilise pour
obtenir la ligne.
-n nb_car
read renvoie aprs avoir lu nb_car caractres plutt que
d'attendre une ligne complte en entre.
-p invite
Affiche invite sur la sortie d'erreur standard, sans car-
actre final de saut de ligne, avant d'essayer de lire
toute nouvelle saisie. L'invite est affiche seulement si
l'entre vient d'un terminal.
-r La contre-oblique n'agit pas comme un caractre d'chappe-
ment. La contre-oblique est considre comme faisant partie
de la ligne. En particulier, le couple con-
tre-oblique-saut de ligne ne peut tre utilis comme une
continuation de ligne.
-s Mode silencieux. Si une entre arrive partir d'un termi-
nal, les caractres ne sont pas affichs.
-t dlai
Conduit read expirer et renvoyer un chec si une ligne
complte en entre n'a pas t lue dans le dlai en secondes.
Cette option n'a aucun effet si read ne lit pas l'entre
partir d'un terminal ou d'un tube.
-u fd Lire l'entre partir du descripteur de fichier fd.
Si aucun nom n'est fourni, la ligne lue est affecte entirement
la variable REPLY. Le code renvoy est zro, moins qu'une
fin-de-fichier soit rencontre, que read dpasse son dlai de
rponse ou qu'un descripteur de fichier incorrect ait t fourni en
argument de -u.
readonly [-apf] [nom[=mot] ...]
Les noms indiqus reoivent un attribut lecture-seule ; les
valeurs de ces noms ne pourront plus tre modifies par des affec-
tations ultrieures. Si l'option -f est fournie, les fonctions
correspondant ces noms sont marques en consquence. L'option -a
restreint l'action aux variables tableaux. Si aucun argument nom
n'est indiqu ou si l'option -p est fournie, une liste de tous
les noms en lecture-seule est affiche. L'option -p conduit
afficher la sortie dans un format susceptible d'tre rutilis en
entre. Si le nom d'une variable est suivi par =mot, la variable
est mise mot. L'tat renvoy est 0, moins qu'une option incor-
recte ait t rencontre, que l'un des noms ne soit pas un nom cor-
rect de variable de l'interprteur ou que l'option -f soit
fournie avec un nom qui n'est pas une fonction.
return [n]
Conduit la terminaison d'une fonction en renvoyant la valeur
spcifie par n. Si n est omis, la valeur renvoye celle de la
dernire commande excute dans le corps de la fonction. Si utilise
dehors d'une fonction, mais durant l'excution d'un script par la
commande . (source) elle conduit la suspension de l'excution du
script par l'interprteur et renvoie comme tat final du script
soit n soit l'tat final de la dernire commande excute dans le
script. Si utilise en dehors d'une fonction ni pendant un script
excut par ., l'tat renvoy est faux. Toute commande associe la
capture de RETURN est excute avant que l'excution reprenne aprs
la fonction ou le script.
set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
Sans options, le nom et la valeur de chacune des variables de
l'interprteur sont affichs dans un format susceptible d'tre
rutilis en entre pour crer ou rinitialiser les variables
courantes. Les variables en lecture seule ne peuvent pas tre
rinitialises. Dans le mode posix, seules les variables de
l'interprteur sont affiches. La sortie est trie en fonction des
paramtres linguistiques rgionaux courants. Lorsque des options
sont spcifies, elles crent ou dtruisent des attributs de
l'interprteur. Tous les arguments restant aprs traitement des
options sont considrs comme des valeurs pour les paramtres posi-
tionnels et sont affects, dans l'ordre, : $1, $2, ... $n. Les
options, si spcifies, ont les significations suivantes :
-a Marquage automatique des variables et fonctions modifies
ou cres pour qu'elles soient exportes dans l'environ-
nement des commandes excutes ultrieurement.
-b Signaler l'tat des tches termines en arrire-plan immdi-
atement, plutt que d'attendre l'affichage de la
prochaine invite de base. N'est effectif que si le con-
trle des tches est activ.
-e Termine immdiatement si commande simple (voir GRAMMAIRE
DE L'INTERPRTEUR plus haut) termine avec un tat diffrent
de zro. L'interprteur ne termine pas si la commande qui
choue fait partie d'une liste de commandes immdiatement
suivie par un mot-clef while ou until, dans le test d'un
if, dans une liste de && ou de || ou si la valeur ren-
voye par la commande est inverse par !. Une capture sur
ERR, si existante, est excute avant que l'interprteur
termine.
-f Dsactiver le dveloppement des chemins.
-h Mmorisation de l'emplacement des commandes lors de leur
excution. Activ par dfaut.
-k Tous les arguments sous la forme d'affectations sont
placs dans l'environnement d'une commande, et non pas
seulement ceux qui prcdent le nom de la commande.
-m Mode supervision. Activation du contrle des tches. Cette
option est active par dfaut pour les interprteurs inter-
actifs sur les systmes qui le permettent (voir CONTRLE
DES TCHES plus haut). Les processus en arrire-plan sont
excuts dans un groupe de processus spar et une ligne
contenant leurs tats finaux est affiche lorsqu'ils ter-
minent.
-n Lecture de commandes sans excution. Ceci peut tre utilis
pour rechercher les erreurs de syntaxe dans un script.
Cette option est ignore par les interprteurs interact-
ifs.
-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 dfaut quand l'interprteur est interac-
tif, moins que l'interprteur soit dmarr avec
l'option --noediting.
errtrace
Identique -E.
functrace
Identique -T.
errexit Identique -e.
hashall Identique -h.
histexpand
Identique -H.
history Activer l'historique des commandes, comme dcrit
plus haut dans HISTORY. Cette option est active
par dfaut dans les interprteurs interactifs.
ignoreeof
Identique l'excution de la commande d'interpr-
teur ``IGNOREEOF=10'' (voir Variables de
l'interprteur plus haut).
keyword Identique -k.
monitor Identique -m.
noclobber
Identique -C.
noexec Identique -n.
noglob Identique -f. nolog Actuellement ignor.
notify Identique -b.
nounset Identique -u.
onecmd Identique -t.
physical
Identique -P.
pipefail
Si existante, la valeur renvoye par une conduite
est la valeur de la dernire commande (la plus
droite) terminer avec un tat final diffrent de
zro ou zro si toutes les commandes de la con-
duite terminent avec succs. Cette option est
dsactive par dfaut.
posix Aligner le comportement de bash sur le standard
POSIX, en ce qui concerne les options dont
l'action par dfaut diffre de ce standard (mode
posix).
privileged
Identique -p.
verbose Identique -v.
vi Utiliser une interface d'dition des lignes de
commande la vi .
xtrace Identique -x.
Si -o est fournie sans nom_d_option, les valeurs
actuelles des options sont affiches. Si +o est fournie
sans nom_d_option, la srie de commandes set permettant
de recrer la configuration courante d'options est
affiche sur la sortie standard.
-p Basculer en mode privilgi. Dans ce mode, les fichiers
$ENV et $BASH_ENV ne sont pas traits, les fonctions de
l'interprteur ne sont pas hrites de l'environnement et
la variable SHELLOPTS, si dans l'environnement, est
ignore. Si l'interprteur dmarre avec un UID (resp. GID)
effectif diffrent de son UID (GID) rel et si l'option -p
n'est pas fournie, ce comportement est appliqu et l'UID
(GID) effectif est mis au UID (GID) rel. Si l'option -p
est fournie au dmarrage l'UID (GID) effectif n'est pas
modifi. Dsactiver cette option conduit la mise des UID
et GID effectifs la valeur des UID et GID rels.
-t Terminer aprs lecture et excution d'une commande.
-u Considrer les variables inexistantes comme des erreurs
lors du dveloppement des paramtres. Si on tente de
dvelopper une variable inexistante, l'interprteur
affiche un message d'erreur et, s'il n'est pas interac-
tif, termine avec un tat diffrent de zro.
-v Affichage les lignes en entre de l'interprteur
lorsqu'elles sont lues.
-x Aprs le dveloppement de chaque commande simple, commande
for, commande case, commande select ou commande for
arithmtique, bash affiche la valeur de PS4, suivie par
la commande et ses arguments dvelopps ou la liste de
mots associs.
-B L'interprteur effectue le dveloppement des accolades
(voir Dveloppement des accolades plus haut). Cette
option est active par dfaut.
-C Si mise, bash n'crasera pas un fichier existant avec les
oprateurs >, >& et <>. Ce comportement peut tre surpass
lors de la cration d'un fichier de sortie en utilisant
l'oprateur de redirection >| la place de >.
-E Si mise, toute capture sur ERR est hrite par les fonc-
tions d'interprteur, les substitutions de commandes et
les commandes excutes dans un sous-interprteur. La cap-
ture de ERR n'est normalement pas hrite dans de tels
cas.
-H Activer le style ! de substitution historique. C'est le
comportement par dfaut lorsque l'interprteur est inter-
actif.
-P Si mise, l'interprteur ne doit pas suivre les liens sym-
boliques en excutant des commandes comme cd qui modi-
fient le rpertoire de travail. Utiliser la place le
rpertoire physique. Par dfaut bash suit la chane logique
des rpertoires lors des commandes qui modifient le rper-
toire courant.
-T Si mise, toutes les captures de DEBUG et RETURN sont
hrites par les fonctions de l'interprteur, les substitu-
tions de commande et les commandes excutes dans un
sous-interprteur. Les captures de DEBUG et RETURN ne
sont normalement pas hrites dans de tels cas.
-- Si aucun argument ne suit cet option, alors les
paramtres positionnels sont dtruits. Sinon, les
paramtres positionnels sont mis aux arguments, mme si
certains d'entre eux commencent par un -.
- Marque la fin des options conduisant tous les arguments
restants tre affects aux paramtres positionnels. Les
options -x et -v sont dsactives. S'il n'y a pas d'argu-
ments, les paramtres positionnels ne sont pas modifis.
Par dfaut les attributs sont dsactivs, sauf indication con-
traire. En utilisant + la place de - on dsactive explicitement
un drapeau. Les attributs peuvent galement tre fournis en argu-
ment lors de l'appel de l'interprteur. Le jeu courant des
options peut tre trouv dans $-. La valeur renvoye est toujours
vrai, moins qu'une option incorrecte soit rencontre.
shift [n]
Les paramtres positionnels partir de n+1 ... sont renomms en $1
.... Les paramtres reprsents par les nombres $# jusqu' $#-n+1
sont dtruits. n doit tre un entier positif infrieur ou gal $#.
Si n vaut 0, aucun paramtres n'est modifi. Si n est omis, on
suppose qu'il vaut 1. Si n est suprieur $#, les paramtres posi-
tionnels ne sont pas modifis. L'tat renvoy est strictement plus
grand que zro si n est plus grand que $# ou plus petit que zro ;
sinon 0.
shopt [-pqsu] [-o] [nom_opt ...]
Bascule la valeur des variables contrlant le comportement facul-
tatif de l'interprteur. Sans option ou avec l'option -p, une
liste de toutes les options configurables est affiche, avec
l'indication de l'tat de chacune d'entre elles. L'option -p con-
duit un affichage de la sortie sous une forme susceptible d'tre
rutilise en entre. Les autres options ont les significations
suivantes :
-s Activer (crer) chaque nom_opt.
-u Dsactiver (dtruire) 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 indiqus avec -q, l'tat
renvoy est zro si tous les nom_opt sont activs ; diffrent
de zro sinon.
-o Restreindre les valeurs des nom_opts celles dfinies pour
l'option -o de la commande interne set.
Si l'option -s ou -u est utilise sans argument nom_opt,
l'affichage est limit aux options qui sont respectivement exis-
tantes ou non. Sauf indication contraire, les options shopt sont
dsactives (dtruites) par dfaut.
L'tat renvoy lors d'un affichage des options est zro si tous les
nom_opt sont activs, diffrent de zro sinon. Lors de la cration
ou de la destruction d'options, l'tat renvoy est zro, moins que
nom_opt ne soit pas une option correcte de l'interprteur.
La liste des options shopt est :
cdable_vars
Si existante, un argument de la commande interne cd qui
n'est pas un rpertoire est suppos tre un nom de variable
dont la valeur est le rpertoire vis.
cdspell Si existante, les erreurs minimes de frappe dans un com-
posant du rpertoire en argument de la commande cd seront
corriges. Les erreurs corriges sont les inversions d'un
caractre, un caractre manquant et un caractre en trop.
Si une correction est possible, le nom de rpertoire cor-
rig est affich et la commande est excut. Cette option
n'est utilise que par les interprteurs interactifs.
checkhash
Si existante, bash vrifie si une commande trouve dans la
table de hachage existe avant d'essayer de l'excuter. Si
une commande hache n'existe plus, une recherche normale
de chemin est effectue.
checkwinsize
Si existante, bash vrifie la taille de la fentre aprs
chaque commande et, au besoin, mettra 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 lment d'his-
torique. Ceci facilite l'dition ultrieure de commandes
multilignes.
compat31
If set, bash changes its behavior to that of version 3.1
with respect to quoted arguments to the conditional com-
mand's =~ operator.
dotglob Si existante, bash inclut les noms de fichiers commenant
par un . dans les rsultats des dveloppements de
chemins.
execfail
Si existante, un interprteur non interactif ne terminera
pas s'il ne peut excuter un fichier spcifi en argument
de la commande interne exec. Un interprteur interactif
ne termine pas si exec choue.
expand_aliases
Si existante, les alias sont dvelopps comme dcrit plus
haut, dans ALIAS. Cette option est active par dfaut
pour les interprteurs 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 numro de
ligne correspondant chaque nom de fonction
fourni comme argument.
2. Si la commande lance par la capture de DEBUG ren-
voie une valeur diffrente de zro, la commande
suivante est saute et n'est pas excute.
3. Si la commande lance par la capture de DEBUG ren-
voie la valeur 2 et si l'interprteur s'excute
dans un sous-programme (une fonction de l'inter-
prteur ou un script excut 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 plus haut.
5. Le traage des fonctions est activ : la substitu-
tion de commande, les fonctions de l'interprteur
et les sous-interprteurs appels avec ( command )
hritent des captures de DEBUG et RETURN.
6. Le traage d'erreur est activ : la substitution de
commande, les fonctions de l'interprteur et les
sous-interprteurs appels avec ( command ) hritent
de la capture de ERROR.
extglob Si existante, les fonctionnalits tendues de mise en cor-
respondance dcrites plus haut dans Dveloppement des
chemins sont actives.
extquote
Si existante, la protection par $'chane' et $"chane" est
effectue l'intrieur des dveloppements de ${paramtres}
entre guillemets doubles. Cette option est active par
dfaut.
failglob
Si existante, les motifs qui chouent faire correspondre
les noms de fichiers pendant le dveloppement des chemins
font qu'ils provoqueront une erreur de dveloppement.
force_fignore
Si existante, les suffixes spcifis par la variable de
l'interprteur FIGNORE conduiront les mots tre ignors
lors du compltement de mots, mme si les mots ignors sont
des compltements possibles. Voir VARIABLES DE L'INTERPR-
TEUR plus haut pour une description de FIGNORE. Cette
option est active par dfaut.
gnu_errfmt
Si existante, les messages d'erreur de l'interprteur
seront crits dans le format standard GNU des messages
d'erreurs.
histappend
Si existante, la file d'historique est ajoute au fichier
dsign par la valeur de la variable HISTFILE lorsque
l'interprteur termine, plutt que d'craser ce fichier.
histreedit
Si existante et si readline est utilise, un utilisateur
peut rditer une substitution d'historique qui a chou.
histverify
Si existante et si readline est utilise, le rsultat de
la substitution d'historique n'est pas transmise immdi-
atement l'analyseur de l'interprteur. la place, la
ligne rsultant est charge dans le tampon d'dition de
readline permettant des modifications ultrieures.
hostcomplete
Si existante et si readline est utilise, bash essayera
d'effectuer le compltement des noms de machines
lorsqu'un mot contient un @ (voir Compltement dans READ-
LINE plus haut). Cette option est active par dfaut.
huponexit
Si existante, bash enverra un signal SIGHUP
toutes les tches lorsqu'un interprteur de connexion
interactif termine.
interactive_comments
Si existante, un mot commenant par un # conduira ce mot
et tous les autres caractres restants de la ligne tre
ignors dans un interprteur interactif (voir COMMENTAIRES
plus haut). Cette option est active par dfaut.
lithist Si existante et si l'option cmdhist est active, les com-
mandes multilignes sont sauvegardes dans l'historique
avec des sauts de ligne incorpors comme sparateurs plutt
que des points-virgules l o c'est possible.
login_shell
L'interprteur cre cette option s'il est dmarr en tant
qu'interprteur de connexion (voir APPEL plus haut). La
valeur ne peut tre modifie.
mailwarn
Si existante et s'il a t accd un fichier que bash
surveille pour les courriels depuis sa dernire vrifica-
tion, le message The mail in fichier_de_courriel has
been read est affich.
no_empty_cmd_completion
Si existante et si readline est utilise, bash n'essaiera
pas d'utiliser le PATH pour de possibles compltements
quand le compltement est tent sur une ligne vide.
nocaseglob
Si existante, bash fait correspondre les noms de
fichiers d'une faon insensible la casse lors du
dveloppement des chemins (voir Dveloppement des chemins
plus haut).
nocasematch
Si existante, bash fait correspondre les motifs d'une
faon insensible la casse lors de la mise en correspon-
dance pendant l'excution des commandes conditionnelles
case ou [[.
nullglob
Si existante, bash autorise les motifs ne correspondant
aucun fichier (voir Dveloppement des chemins plus haut)
se dvelopper en une chane vide plutt qu'en une valeur
littrale.
progcomp
Si existante, les outils de compltement programmables
(voir Compltement programmable plus haut) sont activs.
Cette option est active par dfaut.
promptvars
Si existante, les chanes d'invite sont sujettes au
dveloppement des paramtres, la substitution de com-
mande, au dveloppement arithmtique et
la suppression des protections aprs avoir t dveloppe
comme dcrit plus haut dans INVITES. Cette option est
active par dfaut.
restricted_shell
L'interprteur cre cette option s'il est dmarr en mode
restreint (voir plus bas INTERPRTEUR RESTREINT ). Cette
valeur ne peut pas tre change. Elle n'est pas rini-
tialise lorsque les fichiers de dmarrage sont excuts, ce
qui permet ces fichiers de dcouvrir si un interprteur
est restreint ou non.
shift_verbose
Si existante, la commande interne shift affiche un mes-
sage d'erreur lorsque le nombre de dcalages dpasse le
nombre de paramtres positionnels.
sourcepath
Si existante, la commande interne source (.) utilise la
valeur de la variable PATH pour trouver le rpertoire
contenant le fichier fourni en argument. Cette option
est active par dfaut.
xpg_echo
Si existante, la commande interne echo dveloppe par
dfaut les suites de caractres d'chappement par con-
tre-oblique.
suspend [-f]
Suspend l'excution de l'interprteur jusqu' la rception d'un sig-
nal SIGCONT. L'option -f limine le message d'erreur s'il s'agit
d'un interprteur de connexion et force sa suspension. L'tat ren-
voy est 0, moins que l'interprteur soit un interprteur de con-
nexion et que l'option -f soit absente ou que le contrle des
tches ne soit pas activ.
test expr
[ expr ]
Renvoie un tat de 0 ou 1 selon l'valuation de la condition expr.
Chaque oprateur et oprande doit tre reprsent par un argument
distinct. Les conditions sont composes des primitives dcrites
plus haut dans CONDITIONS. test n'accepte aucune option,
n'accepte pas non plus et ignore l'argument -- signifiant la fin
des options.
Les conditions peuvent tre combines avec les oprateurs suivant,
dcrits par ordre de priorit dcroissante.
! expr Vrai si expr est fausse.
( expr )
Renvoie la valeur de expr. Peut servir surpasser la pri-
orit normale des oprateurs.
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 rgles
dpendant 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 vide.
2 arguments
Si le premier argument est !, la condition est vraie si
et seulement si le second argument est vide. Si le pre-
mier argument est l'un des oprateurs conditionnel unaires
dcrits plus haut dans CONDITIONS la condition est vraie
si le test unaire est vrai. Si le premier argument n'est
pas un oprateur conditionnel unaire correct, la condition
est fausse.
3 arguments
Si le second argument est l'un des oprateurs condition-
nels binaires dcrits plus haut dans CONDITIONS, le rsul-
tat de la condition est le rsultat du test binaire util-
isant le premier et le troisime argument en tant
qu'oprandes. Si le premier argument est !, la valeur est
la ngation du test binaire utilisant les deuxime et
troisime arguments. Si le premier argument est exactement
( et le troisime argument est exactement ), le rsultat
est le test unaire du second argument. Sinon la condition
est fausse. Les oprateurs -a et -o sont considrs comme
des oprateurs binaires dans ce cas.
4 arguments
Si le premier argument est !, le rsultat est la ngation
de la condition
trois arguments compose des arguments restants. Sinon la
condition est analyse et value selon les rgles de priorit
dcrites ci-dessus.
5 arguments ou plus
La condition est analyse et value selon les rgles de pri-
orit dcrites ci-dessus.
times Affiche les dures cumules utilisateur et systme pour l'interpr-
teur et les processus lancs par cet interprteur. L'tat renvoy
est 0.
trap [-lp] [[arg] sigspec ...]
La commande arg sera lue et excute lorsque l'interprteur reoit
l'un des signaux sigspec. Si arg est absent (et qu'il n'y a
qu'un sigspec) ou s'il est -, chaque signal spcifi est rini-
tialis dans son tat d'origine (la valeur qu'il avait au dmarrage
de l'interprteur). Si arg est la chane vide, le signal spcifi
par chaque sigspec est ignor par l'interprteur et par les com-
mandes qu'il appelle. Si arg est absent et si -p a t fournie
alors les commandes de captures associes chacun des sigspec
sont affiches. Si aucun argument n'est fourni ou si seulement -p
est indiqu, trap affiche la liste des commandes associes chaque
signal. L'option -l conduit l'interprteur afficher une liste de
noms de signaux et leurs numros correspondants. Chaque sigspec
est soit un nom de signal dfini dans <signal.h> ou un numro de
signal. Les noms de signaux sont insensible la casse et le
prfixe SIG est facultatif. Si un sigspec est EXIT (0) la com-
mande arg est excute quand l'interprteur termine. Si un sigspec
est DEBUG, la commande arg est excute avant chaque commande sim-
ple, commande for, commande case, commande select, chaque com-
mande for arithmtique et avant que la premire commande soit
excute dans une fonction de l'interprteur (voir plus haut GRAM-
MAIRE DE L'INTERPRTEUR ). Se rapporter la description de
l'option extdebug de la commande interne shopt pour les dtails
de son effet sur la capture de DEBUG. Si un sigspec est ERR, la
commande arg est excute chaque fois qu'une commande simple a un
tat final diffrent de zro, selon les conditions suivantes. La
capture de ERR n'est pas excute si la commande qui a chou fait
partie d'une liste de commandes suivant immdiatement un mot-clef
while ou until, un test d'un if, d'un && ou d'une liste || ou si
la valeur renvoye par la commande est inverse par !. Ce sont les
mmes conditions que pour l'option errexit. Si un sigspec est
RETURN, la commande arg est excute chaque fois qu'une fonction
de l'interprteur ou un script excut par les commandes internes .
ou source finit son excution. Les signaux ignors lors de l'appel
de l'interprteur ne peuvent tre capturs ni rinitialiss. Les sig-
naux capturs, qui ne sont pas ignors, sont rinitialises leurs
valeurs originelles dans un processus enfant lors de sa cration.
L'tat renvoy est faux si un quelconque des sigspec est incor-
rect ; sinon trap renvoie vrai.
type [-aftpP] nom [nom ...]
Sans option, indique comment chaque nom doit tre interprt si on
l'utilise en nom de commande. Si l'attribut -t est utilis, type
affiche une des phrases suivantes alias, keyword, function,
builtin ou file selon que le nom est un alias, un mot-cl rserv
de l'interprteur, 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
utilise, type renvoie le nom du fichier qui sera excut 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, mme 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 ncessaire-
ment le fichier apparaissant en premier dans PATH. Si l'option
-a est appele, type affiche tous les emplacements contenant un
excutable du nom indiqu. Ceci inclut les alias et les fonctions,
sauf si l'option -p est galement prsente. La table de hachage
des commandes n'est pas consulte avec l'option -a. L'option -f
supprime la fonction de l'interprteur de consultation de table,
comme avec la commande interne command. type renvoie vrai si un
quelconque des arguments est trouv et faux si aucun n'a t trouv.
ulimit [-SHacdefilmnpqrstuvx [limitation]]
Fournit, sur les systmes qui le permettent, un mcanisme de con-
trle des ressources disponibles pour l'interprteur et pour les
processus qu'il lance. Les options -H et -S spcifient si la lim-
itation est stricte (hard) ou flexible (soft) pour la ressource
indique. Une limitation stricte ne peut pas tre augmente une
fois qu'elle a t mise ; une limitation flexible peut tre
augmente jusqu' la valeur de la limitation stricte correspon-
dante. Si ni -H ni -S n'est spcifi les limitations strictes et
flexibles sont toutes deux mises. La valeur de la limitation
peut tre un nombre (utilisant les units particulires de la
ressource) ou l'une des valeurs spciales hard, soft ou unlim-
ited, qui signifient, respectivement, la limitation stricte
courante, la limitation flexible courante et l'absence de limi-
tation. Si la limitation est omise, la valeur courante de la
limitation flexible pour la ressource est affiche, moins que
l'option -H soit indique. Quand plusieurs ressources sont spci-
fies, les noms des limitations et leurs units sont affichs avant
les valeurs. Les autres options sont interprtes comme suit :
-a Toutes les limitations courantes sont signales
-c La taille maximum des fichiers core crs
-d La taille maximum du segment de donnes d'un processus
-e La priorit d'ordonnancement maximum ( nice )
-f La taille maximum d'un fichier crit par l'interprteur et
ses fils
-i Le nombre maximum de signaux en attente
-l La taille maximum qui peut tre verrouille en mmoire
-m La taille maximum de la partie rsidente d'un processus
-n Le nombre maximum de descripteurs de fichiers ouverts (la
plupart des systmes ne permettent pas de modifier cette
valeur)
-p La taille d'un tube en blocs de 512 octets (parfois inex-
istante)
-q Le nombre maximum d'octets dans les files de messages
POSIX
-r La priorit d'ordonnancement temps-rel maximale
-s La taille maximum de la pile
-t La dure maximum, en seconde, de temps CPU accord un pro-
cessus
-u Le nombre maximum de processus autoriss pour un seul
utilisateur
-v La quantit de mmoire virtuelle disponible pour l'interpr-
teur
-x Le nombre maximum de verrous de fichiers
Si une limitation est indique, elle sera la nouvelle valeur pour
la ressource spcifie (l'option -a correspond l'affichage seul).
Si aucune option n'est indique alors -f est suppose. Les valeurs
s'expriment par pas de 1024 octets, sauf pour -t qui est en sec-
ondes, -p, qui utilise des units de blocs de 512 octets, ainsi
que -n et -u, qui n'ont pas d'units. L'tat renvoy est 0, moins
qu'une option ou un argument incorrect ait t fourni ou qu'une
erreur se produise en mettant la nouvelle limitation.
umask [-p] [-S] [mode]
Le masque de cration de fichier de l'utilisateur est mis mode.
Si mode commence par un chiffre, il est interprt comme un nombre
octal, sinon il est considr comme un masque symbolique, sem-
blable ceux accepts par chmod(1). Si mode est omis ou si
l'option -S est fournie, la valeur courante du masque est
affiche. L'option -S conduit l'affichage du masque sous forme
symbolique, l'affichage par dfaut tant en octal. Si l'option -p
est fournie et si le mode est omis, la sortie a lieu dans un
format rutilisable en entre. 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 ...]
Supprime le nom de la liste des alias dfinis. Si l'option -a est
fournie, toutes les dfinitions d'alias sont supprimes. La valeur
renvoye est vrai, moins qu'un nom fourni ne soit pas un alias
dfini.
unset [-fv] [nom ...]
Pour chaque nom indiqu, supprimer la variable ou la fonction
correspondante. Si aucune option n'est fournie ou si l'option -v
est indique, chaque nom se rapporte une variable de l'interpr-
teur. Les variables en lecture-seule ne peuvent pas tre dtru-
ites. Si l'option -f est spcifie, chaque nom se rapporte une
fonction de l'interprteur et la dfinition de la fonction est
supprime. Chaque variable ou fonction dtruite est supprime de
l'environnement transmis aux commandes ultrieures. Si une quel-
conque des variables RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME,
GROUPS ou DIRSTACK est dtruite, elle perd ses proprits spci-
fiques, mme s'il elle est recre ultrieurement. L'tat final est
vrai, moins qu'un des noms ne soit en lecture seule.
wait [n ...]
Attend que chaque processus spcifi termine et renvoie son tat
final. Chaque n peut tre un PID ou une spcification de tche ; si
une spcification de tche est indique, la fin de tous les proces-
sus de la conduite de cette tche sera attendue. Si n est omis,
la fin de tous les processus enfants actuellement actifs sera
attendue et l'tat renvoy est zro. Si n spcifie un processus ou
une tche inexistants, l'tat renvoy est 127. Sinon, l'tat renvoy
est l'tat final du dernier processus ou tche attendu.
Si bash dmarre sous le nom rbash ou si l'option -r est fournie lors de
son appel, l'interprteur devient restreint. Un interprteur restreint
permet de crer un environnement plus contrl qu'un interprteur standard.
Il se comporte de mme faon que bash la diffrence des actions suivantes
qui sont interdites ou non effectues :
+o changer de rpertoire avec cd
+o crer ou dtruire les valeurs de SHELL, PATH, ENV ou BASH_ENV
+o indiquer des noms de commandes contenant un /
+o indiquer un nom de fichier contenant un / comme argument de la
commande interne . ;
+o Spcifier un nom de fichier contenant une barre oblique comme
argument de l'option -p de la commande interne hash
+o importer une dfinition de fonction dans l'environnement au dmar-
rage ;
+o analyser les valeurs de SHELLOPTS au dmarrage ;
+o rediriger la sortie en utilisant les oprateurs de redirection >,
>|, <>, >&, &> et >>
+o utiliser la commande interne exec pour remplacer l'interprteur
par une autre commande
+o ajouter ou supprimer des commandes internes avec les options -f
et -d de la commande interne enable ;
+o utiliser la commande interne enable pour activer les commandes
internes de l'interprteur dsactives ;
+o indiquer l'option -p la commande interne commande
+o supprimer le mode restreint avec set +r ou set +o restricted.
Ces restrictions sont mises en place aprs la lecture d'un quelconque
des fichiers de dmarrage.
When a command that is found to be a shell script is executed (see COM-
MAND EXECUTION above), rbash supprime toute restriction dans l'interpr-
teur cr pour excuter le script.
Manuel de rfrence 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 Utili-
ties, IEEE
sh(1), ksh(1), csh(1)
emacs(1), vi(1)
readline(3)
/bin/bash
L'excutable bash
/etc/profile
Le fichier d'initialisation commun tout le systme, excut pour
les interprteurs de commandes de connexion
/etc/bash.bashrc
Le fichier de dmarrage commun tout le systme pour chacun des
interprteurs interactifs
/etc/bash.logout
Le fichier de nettoyage des interprteurs de connexion commun
tout le systme, excut lorsqu'un interprteur de connexion termine
~/.bash_profile
Le fichier d'initialisation personnel excut pour les interpr-
teurs de commandes de connexion
~/.bashrc
Le fichier de dmarrage personnel, pour chacun des interprteurs
interactifs
~/.bash_logout
Le fichier de nettoyage personnel des interprteurs de commandes
de connexion, excut lorsqu'un interprteur de commandes de con-
nexion termine
~/.inputrc
Le fichier d'initialisation personnalise de readline
Brian Fox, Free Software Foundation
bfox [AT] gnu.org
Chet Ramey, Case Western Reserve University
chet [AT] po.edu
Si vous trouvez une anomalie dans bash, vous devriez la signaler. Tout
d'abord vous devez vous assurer qu'il s'agit rellement d'une anomalie
et qu'elle apparat bien dans la dernire version de bash disponible. La
dernire version est toujours disponible partir de
ftp://ftp.gnu.org/pub/bash/.
Une fois que vous avez dtermin 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 mme temps ! Les
suggestions ou les signalements d'anomalies de nature philosophique
peuvent tre envoys (en anglais) bug-bash [AT] gnu.org ou posts dans le
groupe Usenet gnu.bash.bug.
TOUS les signalements d'anomalie doivent contenir :
Le numro de version de bash
Le matriel et le systme d'exploitation utiliss
Le compilateur utilis pour compiler
Une description (en anglais) de l'anomalie
Un petit script ou une recette qui dmontre l'anomalie
bashbug insre automatiquement les trois premiers lments de cette liste
dans le formulaire qu'il fournit pour remplir un signalement d'anoma-
lie.
Les commentaires et signalement d'anomalies concernant la version orig-
inale de cette page de manuel (en anglais) doivent tre transmis
chet [AT] po.edu. Ceux concernant cette version franaise peuvent tre
envoys debian-l10n-french [AT] lists.org.
Cet interprteur de commandes est trop gros et trop lent.
Il y a quelques diffrences subtiles de comportement entre bash et les
versions traditionnelles de sh, principalement cause des spcifications
POSIX.
L'utilisation des alias peut avoir des consquences inattendues.
Les commandes internes et les fonctions de l'interprteur ne peuvent pas
tre suspendues/relances.
Les commandes composes et les suites de commandes de la forme
a ; b ; c ne sont pas gres lgamment lors d'une interruption de pro-
cessus. En cas de suspension d'un processus, l'interprteur excute imm-
diatement la commande suivante. Il suffit de placer cette suite de com-
mandes entre parenthses pour la forcer crer un sous-interprteur, qui,
lui, pourra tre suspendu en bloc.
Les commandes l'intrieur de la substitution de commande $(...) ne sont
pas analyses avant la tentative de substitution. Cela retardera
l'affichage de messages d'erreurs pendant un certain temps aprs que la
commande a t saisie. Par exemple, des parenthses qui ne concordent pas,
mme l'intrieur de commentaires, provoqueront des messages d'erreur
lorsque la structure sera lue.
Les variables de type tableau ne peuvent pas (encore) tre exportes.
Ce document est une traduction ralise par Christophe Blaess et Thierry
Vignaud en 1997, et mise jour par Alain Portal <aportal AT univ-montp2
DOT fr> en 2006. La version prsente dans Debian a t entirement retra-
vaille et est dornavant maintenue par Frdric Lehobey <Frederic AT
Lehobey DOT net> et les membres de la liste <debian-l10n-french AT
lists DOT debian DOT org>. Veuillez signaler toute erreur de traduc-
tion par un rapport de bogue sur le paquet manpages-fr-extra.
GNU Bash-3.2 28 septembre 2006 BASH(1)