Man page - bash(1)
Packages contains this manual
Available languages:
en fr es it pl ja uk zh_TW zh_CNManual
BASH
NOMSYNOPSIS
COPYRIGHT
DESCRIPTION
OPTIONS
ARGUMENTS
APPEL
DĂFINITIONS
MOTS RĂSERVĂS
GRAMMAIRE DE LâINTERPRĂTEUR
Commandes simples
Pipelines
Listes
Commandes composées
Coprocessus
DĂ©finitions des fonctions de lâinterprĂ©teur
COMMENTAIRES
PROTECTIONS
PARAMĂTRES
ParamĂštres positionnels
ParamÚtres spéciaux
Variables de lâinterprĂ©teur
Tableaux
DĂVELOPPEMENTS
Développement des accolades
Développement du tilde
Développement des paramÚtres
Substitution de commande
Développement arithmétique
Substitution de processus
Découpage en mots
Développement des chemins
Suppression des protections
REDIRECTIONS
Redirection dâentrĂ©e
Redirection de sortie
Ajout dâune sortie redirigĂ©e
Redirection de la sortie standard et de la sortie dâerreur standard
Ajout de la sortie standard et de la sortie dâerreur standard
Document en ligne
ChaĂźnes en ligne
Dédoublement de descripteurs de fichier
Déplacement de descripteurs de fichier
Ouverture en Lecture/Ăcriture dâun descripteur de fichier
ALIAS
FONCTIONS
ĂVALUATION ARITHMĂTIQUE
CONDITIONS
DĂVELOPPEMENT DES COMMANDES SIMPLES
EXĂCUTION DES COMMANDES
ENVIRONNEMENT DâEXĂCUTION DES COMMANDES
ENVIRONNEMENT
CODE DE RETOUR
SIGNAUX
CONTRĂLE DES TĂCHES
INVITES
READLINE
Notation readline
Initialisation de readline
Raccourcis clavier readline
Variables de readline
Constructions conditionnelles de readline
Recherche
Noms des commandes readline
Commandes de déplacement
Commandes de manipulation de lâhistorique
Commande dâĂ©dition de texte
Effacement et récupération
Arguments numériques
ComplĂštement
Macros clavier
Divers
ComplĂštement programmable
HISTORIQUE
DĂVELOPPEMENT DE LâHISTORIQUE
Indicateur dâĂ©vĂ©nement
Indicateurs de mots
Modificateurs
COMMANDES INTERNES DE LâINTERPRĂTEUR
MODE DE COMPATIBILITĂ DE LâINTERPRĂTEUR
INTERPRĂTEUR RESTREINT
VOIR AUSSI
FICHIERS
AUTEURS
SIGNALEMENTS DE BOGUES
BOGUES
TRADUCTION
NOM
bash - Interpréteur de commandes GNU Bourne-Again SHell
SYNOPSIS
bash [ options ] [ chaĂźne_de_commande | fichier ]
COPYRIGHT
Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc.
DESCRIPTION
Bash est un interprĂ©teur de commandes ( shell ) compatible sh qui exĂ©cute les commandes lues depuis lâentrĂ©e standard ou depuis un fichier. Bash inclut aussi des fonctionnalitĂ©s utiles des interprĂ©teurs de commandes Korn et C ( ksh et csh ).
Bash vise Ă ĂȘtre une implĂ©mentation conforme Ă la partie relative aux interprĂ©teurs de commandes et utilitaires des spĂ©cifications IEEE POSIX (norme IEEE 1003.1). Bash peut ĂȘtre configurĂ© pour ĂȘtre conforme Ă la norme POSIX par dĂ©faut.
OPTIONS
Toutes les options dâinterprĂ©teur monocaractĂšres documentĂ©es dans la description de la commande interne set , y compris -o , peuvent ĂȘtre utilisĂ©es comme options si lâinterprĂ©teur est invoquĂ©. De plus, bash accepte les options suivantes lors de son appel :
|
-c |
Si lâoption -c est prĂ©sente, les commandes sont lues depuis le premier argument chaĂźne_de_commande qui nâest pas une option. Si des arguments suivent la chaĂźne_de_commande , le premier argument est assignĂ© Ă $0 et tous les autres sont affectĂ©s aux paramĂštres positionnels. Le nom de lâinterprĂ©teur, utilisĂ© pour les messages dâavertissement et dâerreur, est fixĂ© par lâassignation Ă $0 . |
||
|
-i |
Si lâoption -i est prĂ©sente, lâinterprĂ©teur est interactif . |
||
|
-l |
Faire que bash se comporte comme sâil avait Ă©tĂ© appelĂ© comme interprĂ©teur de commandes de connexion (consultez APPEL ci-dessous). |
||
|
-r |
Si lâoption -r est prĂ©sente, lâinterprĂ©teur devient restreint (consultez INTERPRĂTEUR RESTREINT ci-dessous). |
||
|
-s |
Si lâoption -s est prĂ©sente ou sâil ne reste plus dâargument aprĂšs le traitement des options, alors les commandes sont lues depuis lâentrĂ©e standard. Cette option permet dâaffecter les paramĂštres positionnels lors de lâappel dâun interprĂ©teur interactif ou de la lecture de lâentrĂ©e Ă travers un tube. |
||
|
-v |
Afficher les lignes en entrĂ©e de lâinterprĂ©teur lorsquâelles sont lues. |
||
|
-x |
Afficher les commandes et leurs arguments Ă mesure quâelles sont exĂ©cutĂ©es. |
||
|
-D |
Une liste de toutes les chaĂźnes entre guillemets doubles prĂ©cĂ©dĂ©es de $ est affichĂ©e sur la sortie standard. Ce sont les chaĂźnes qui sont soumises Ă une traduction quand le paramĂštre linguistique rĂ©gional nâest ni C ni POSIX . Cela implique lâoption -n ; aucune commande ne sera exĂ©cutĂ©e. |
[ -+ ] O [ option_shopt ]
option_shopt est une des options de lâinterprĂ©teur acceptĂ©es par la commande interne shopt (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Si option_shopt est prĂ©sente, -O crĂ©e cette option ; +O la dĂ©truit. Si option_shopt nâest pas fournie, les noms et valeurs des options de lâinterprĂ©teur acceptĂ©es par shopt sont affichĂ©s sur la sortie standard. Si lâoption dâappel est +O , la sortie est affichĂ©e dans un format rĂ©utilisable en entrĂ©e.
|
-- |
Deux caractÚres -- indiquent la fin des options et désactivent le traitement des arguments. Tous les arguments aprÚs le -- sont traités comme des noms de fichiers et paramÚtres. - est équivalent à -- . |
Bash
reconnaßt également plusieurs options
multicaractĂšres. Ces options doivent, pour ĂȘtre
reconnues, apparaĂźtre sur la ligne de commande avant
les options monocaractĂšres.
--debugger
Prend les dispositions pour que le paramĂ©trage du traçage soit exĂ©cutĂ© avant que lâinterprĂ©teur dĂ©marre. Enclenche le mode de traçage Ă©tendu (consultez ci-dessous la description de lâoption extdebug de la commande interne shopt ).
--dump-po-strings
Ăquivalent Ă -D , mais la sortie est dans le format des fichiers po (objets portables) de lâoutil GNU gettext .
--dump-strings
Ăquivalent Ă -D .
|
--help |
Affiche un message dâaide sur la sortie standard et termine avec succĂšs. |
--init-file
fichier
--rcfile
fichier
ExĂ©cuter les commandes contenues dans fichier plutĂŽt que celles du fichier dâinitialisation commun Ă tout le systĂšme /etc/bash.bashrc et que le fichier dâinitialisation personnel standard Ë/.bashrc si lâinterprĂ©teur est interactif (consultez APPEL ci-dessous).
--login
Ăquivalent Ă -l .
--noediting
Ne pas utiliser la bibliothĂšque GNU readline pour lire les lignes de commande, lorsque lâinterprĂ©teur est interactif.
--noprofile
Ne lire ni le fichier dâinitialisation commun Ă tout le systĂšme /etc/profile ni les fichiers personnels dâinitialisation Ë/.bash_profile , Ë/.bash_login ou Ë/.profile . Par dĂ©faut, bash lit ces fichiers lorsquâil est appelĂ© comme interprĂ©teur de commandes de connexion (consultez APPEL ci-dessous).
|
--norc |
Ne pas lire ou exĂ©cuter le fichier de configuration commun Ă tout le systĂšme /etc/bash.bashrc , ni le fichier personnel dâinitialisation Ë/.bashrc lorsque lâinterprĂ©teur est interactif. Cette option est activĂ©e par dĂ©faut si lâinterprĂ©teur est appelĂ© sous le nom sh . |
--posix
Aligner le comportement de bash sur la norme ( mode POSIX ), en ce qui concerne les options dont lâaction par dĂ©faut diffĂšre de la norme POSIX. La section VOIR AUSSI ci-dessous rĂ©fĂ©rence un document prĂ©cisant la façon dont le mode POSIX affecte le comportement de bash .
--restricted
LâinterprĂ©teur devient restreint (consultez INTERPRĂTEUR RESTREINT ci-dessous).
--verbose
Ăquivalent Ă -v .
--version
Affiche le numéro de version de bash sur la sortie standard et termine avec succÚs.
ARGUMENTS
Sâil reste des arguments sur la ligne de commande aprĂšs traitement des options et que ni lâoption -c , ni lâoption -s nâont Ă©tĂ© fournies, le premier argument est supposĂ© ĂȘtre le nom du fichier dans lequel lire les commandes dâinterprĂ©teur. Si bash est appelĂ© de cette façon, le nom du fichier est affectĂ© Ă $0 et les arguments restants aux autres paramĂštres positionnels. Bash lit et exĂ©cute les commandes depuis ce fichier, puis termine. LâĂ©tat final de bash est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e dans le script. Si aucune commande nâa Ă©tĂ© exĂ©cutĂ©e, lâĂ©tat final est 0 . Une tentative est dâabord faite de trouver le fichier dans le rĂ©pertoire actuel et, si aucun fichier nâest trouvĂ©, lâinterprĂ©teur cherche le script dans les rĂ©pertoires contenus dans PATH .
APPEL
Un interprĂ©teur de commandes est dit de connexion ( login shell ) si le premier caractĂšre de son argument numĂ©ro zĂ©ro est un - ou sâil est appelĂ© avec lâoption --login .
Un interprĂ©teur est interactif sâil est appelĂ© sans argument autre que des options (Ă moins que lâoption -s soit spĂ©cifiĂ©e) et sans lâoption -c , dont lâentrĂ©e standard et la sortie dâerreur sont toutes deux connectĂ©es Ă des terminaux (comme dĂ©terminĂ© par la fonction isatty (3)), ou sâil est appelĂ© avec lâoption -i . PS1 est créée et $- contient la lettre i si bash est interactif, ce qui permet Ă un script ou Ă un fichier dâinitialisation de tester cet Ă©tat.
Le paragraphe suivant dĂ©crit comment bash exĂ©cute ses fichiers dâinitialisation. Si un de ces fichiers existe mais nâest pas accessible en lecture, bash signale une erreur. Les tildes sont remplacĂ©s par des noms de fichiers comme dĂ©crit ci-dessous dans DĂ©veloppement du tilde dans le paragraphe DĂVELOPPEMENTS .
Lorsque bash est lancĂ© comme interprĂ©teur de commandes de connexion interactif ou comme interprĂ©teur non interactif avec lâoption --login , il lit et exĂ©cute tout dâabord les commandes se trouvant dans le fichier /etc/profile si ce fichier existe. AprĂšs lecture de ce fichier, il recherche Ë/.bash_profile , Ë/.bash_login et Ë/.profile , dans cet ordre, puis lit et exĂ©cute les commandes se trouvant dans le premier fichier existant et accessible en lecture. Lâoption --noprofile peut ĂȘtre utilisĂ©e Ă lâappel de lâinterprĂ©teur pour empĂȘcher ce comportement.
Lorsquâun interprĂ©teur de commandes de connexion interactif termine, ou quâun interprĂ©teur de commandes de connexion non interactif exĂ©cute la commande interne exit , bash lit et exĂ©cute les commandes du fichier Ë/.bash_logout , sâil existe.
Quand un interprĂ©teur interactif dĂ©marre sans ĂȘtre un interprĂ©teur de commandes de connexion, bash lit et exĂ©cute les commandes se trouvant dans /etc/bash.bashrc et Ë/.bashrc sâils existent. Ce comportement peut ĂȘtre empĂȘchĂ© Ă lâaide de lâoption --norc . Lâoption --rcfile fichier forcera bash Ă lire et exĂ©cuter les commandes dans fichier plutĂŽt que dans /etc/bash.bashrc et Ë/.bashrc .
Quand bash est dĂ©marrĂ© de façon non interactive, par exemple pour lancer un script, il consulte la variable BASH_ENV dans lâenvironnement, dĂ©veloppe son contenu si elle existe et considĂšre cette valeur comme le nom dâun fichier Ă lire et exĂ©cuter. Bash se comporte comme si la commande suivante Ă©tait exĂ©cutĂ©e :
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
mais la valeur de la variable PATH nâest pas utilisĂ©e pour rechercher le fichier.
Si bash est appelĂ© sous le nom sh , il essaye dâimiter le comportement de dĂ©marrage des versions historiques de sh aussi fidĂšlement que possible, tout en restant conforme Ă la norme POSIX. Lorsquâil est appelĂ© comme interprĂ©teur de commandes de connexion interactif ou non interactif avec lâoption --login , il essaye dâabord de lire et exĂ©cuter, dans cet ordre, les commandes de /etc/profile puis de Ë/.profile . Lâoption --noprofile peut ĂȘtre utilisĂ©e pour empĂȘcher ce comportement. Quand il est appelĂ© en tant quâinterprĂ©teur interactif sous le nom sh , bash consulte la variable ENV , dĂ©veloppe sa valeur si elle est dĂ©finie et utilise le rĂ©sultat en tant que nom de fichier Ă lire et exĂ©cuter. Comme un interprĂ©teur appelĂ© sous le nom sh nâessaye ni de lire, ni dâexĂ©cuter des commandes dâun autre fichier de dĂ©marrage, lâoption --rcfile nâa aucun effet. Un interprĂ©teur non interactif appelĂ© sous le nom sh nâessaie de lire aucun autre fichier dâinitialisation. Quand il est appelĂ© sous le nom sh , bash entre en mode POSIX aprĂšs avoir lu les fichiers dâinitialisation.
Quand bash est appelĂ© en mode POSIX comme avec lâoption --posix sur la ligne de commande, il suit la norme POSIX pour les fichiers de dĂ©marrage. Dans ce mode, les interprĂ©teurs interactifs dĂ©veloppent la variable ENV et les commandes sont lues et exĂ©cutĂ©es Ă partir du fichier dont le nom est la valeur dĂ©veloppĂ©e. Aucun autre fichier dâinitialisation nâest lu.
Bash tente de dĂ©terminer sâil est exĂ©cutĂ© avec son entrĂ©e standard reliĂ©e Ă une connexion rĂ©seau, comme quand il est exĂ©cutĂ© par le dĂ©mon lançant les interprĂ©teurs de commandes Ă distance historiques, gĂ©nĂ©ralement rshd , ou le dĂ©mon dâinterprĂ©teur sĂ©curisĂ© sshd . Si bash conclut quâil est exĂ©cutĂ© de façon non interactive de cette maniĂšre, il lit et exĂ©cute les commandes de /etc/bash.bashrc et Ë/.bashrc si ces fichiers existent et sont accessibles en lecture. Il nâa pas ce comportement lorsquâil est appelĂ© sous le nom sh . Lâoption --norc peut ĂȘtre utilisĂ©e pour empĂȘcher ce comportement et lâoption --rcfile peut ĂȘtre utilisĂ©e pour forcer la lecture dâun autre fichier, mais rshd et sshd nâappellent gĂ©nĂ©ralement pas lâinterprĂ©teur avec ces options et ne permettent pas de les indiquer.
Si lâinterprĂ©teur est lancĂ© avec un identifiant (de groupe) dâutilisateur effectif diffĂ©rent de lâidentifiant (de groupe) dâutilisateur rĂ©el et si lâoption -p nâest pas fournie, aucun fichier dâinitialisation nâest lu, les fonctions de lâinterprĂ©teur ne sont pas importĂ©es depuis lâenvironnement, les variables SHELLOPTS , BASHOPTS , CDPATH , et GLOBIGNORE , si prĂ©sentes dans lâenvironnement, sont ignorĂ©es, et lâidentifiant de lâutilisateur effectif est configurĂ© Ă celui de lâutilisateur rĂ©el. Si lâoption -p est fournie Ă lâappel, le comportement au dĂ©marrage est le mĂȘme mais lâidentifiant dâutilisateur effectif nâest pas modifiĂ©.
DĂFINITIONS
Les définitions suivantes sont utilisées dans toute la suite ce document.
|
blanc |
Une espace ou une tabulation. |
||
|
mot |
Une suite de caractĂšres considĂ©rĂ©e comme une unitĂ© Ă©lĂ©mentaire par lâinterprĂ©teur. On parle Ă©galement de lexĂšme (« token »). |
||
|
nom |
Un mot ne contenant que des caractĂšres alphanumĂ©riques et des tirets bas (« underscore »), commençant par une lettre ou un tiret bas. On sây rĂ©fĂšre Ă©galement sous le terme identificateur . |
métacaractÚre
Un caractĂšre qui, non
protégé, sépare les mots. Un de
ceux-ci :
| & ; ( ) < > space tab newline
opérateur de contrÎle
Un
lexĂšme
ayant
une fonction de contrĂŽle. Câest lâun des
symboles suivants :
|| & && ; ;; ;& ;;& ( ) | |&
<newline>
MOTS RĂSERVĂS
Les mots rĂ©servĂ©s sont des mots qui ont une signification spĂ©ciale pour lâinterprĂ©teur. Les mots suivants sont reconnus comme rĂ©servĂ©s lorsquâils ne sont pas protĂ©gĂ©s et sont soit le premier mot dâune commande (consultez GRAMMAIRE DE LâINTERPRĂTEUR ci-dessous), le troisiĂšme mot dâune commande case ou select (seul in est valable), ou le troisiĂšme mot dâune commande for (seuls in et do sont valables) :
! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
GRAMMAIRE DE LâINTERPRĂTEUR
Cette partie dĂ©crit la syntaxe des diffĂ©rentes formes de commande de lâinterprĂ©teur.
Commandes simples
Une commande simple est une suite dâaffectations facultatives de variables, suivie de mots sĂ©parĂ©s par des blancs et de redirections, et terminĂ©e par un opĂ©rateur de contrĂŽle . Le premier mot indique la commande Ă exĂ©cuter et est passĂ© comme argument zĂ©ro. Les mots restants sont transmis comme arguments Ă la commande appelĂ©e.
La valeur renvoyée par une commande simple est son état final ou 128+ n si la commande a été terminée par le signal n .
Pipelines
Un pipeline est une suite dâune ou plusieurs commandes sĂ©parĂ©es par un des opĂ©rateurs de contrĂŽle | ou |& . Le format dâun pipeline est :
[ time [ -p ]] [ ! ] commande_1 [ [ | âȘ |& ] commande_2 ... ]
La sortie standard de la commande_1 est connectĂ©e par un tube Ă lâentrĂ©e standard de la commande_2 . Cette connexion est effectuĂ©e avant toute redirection indiquĂ©e par la commande_1 (consultez REDIRECTIONS ci-dessous). Si |& est utilisĂ©, la sortie dâerreur standard de la commande_1 , en plus de sa sortie standard, est connectĂ©e Ă lâentrĂ©e standard de la commande_2 dans le tube ; câest un raccourci pour 2>&1 | . Cette redirection implicite de la sortie dâerreur standard vers la sortie standard est rĂ©alisĂ©e aprĂšs toute redirection prĂ©cisĂ©e par la commande_1 .
LâĂ©tat renvoyĂ© par un pipeline est lâĂ©tat final de la derniĂšre commande, Ă moins que lâoption pipefail soit activĂ©e. Si pipefail est activĂ©e, lâĂ©tat renvoyĂ© par le pipeline est la valeur de la derniĂšre commande (la plus Ă droite) Ă terminer avec un Ă©tat diffĂ©rent de zĂ©ro ou zĂ©ro si toutes les commandes se terminent avec succĂšs. Si le mot rĂ©servĂ© ! prĂ©cĂšde un pipeline, lâĂ©tat final de ce pipeline sera la nĂ©gation logique de lâĂ©tat final tel que dĂ©crit ci-dessus. LâinterprĂ©teur attend que toutes les commandes du pipeline soient terminĂ©es avant de renvoyer une valeur.
Si le mot rĂ©servĂ© time prĂ©cĂšde un pipeline, les temps passĂ©s par le programme en modes utilisateur et systĂšme sont indiquĂ©s quand le pipeline se termine. Lâoption -p modifie le format de sortie pour celui indiquĂ© par POSIX. Quand lâinterprĂ©teur est en mode POSIX , il ne reconnaĂźt pas time comme un mot rĂ©servĂ© si le lexĂšme suivant commence par un « - ». La variable TIMEFORMAT peut contenir une chaĂźne de format indiquant comment les informations de chronomĂ©trage doivent ĂȘtre affichĂ©es ; consultez ci-dessous la description de TIMEFORMAT dans Variables de lâinterprĂ©teur .
Quand lâinterprĂ©teur est en mode POSIX , time peut ĂȘtre suivi dâun changement de ligne. Dans ce cas, lâinterprĂ©teur affiche le temps utilisateur et systĂšme total consommĂ© par lâinterprĂ©teur et ses enfants. La variable TIMEFORMAT peut ĂȘtre utilisĂ©e pour indiquer le format des informations de temps.
Toute commande dans un pipeline multicommande, oĂč les tubes sont créés, est exĂ©cutĂ©e dans un sous-interprĂ©teur qui est un processus sĂ©parĂ©. Consultez ENVIRONNEMENT DâEXĂCUTION DES COMMANDES pour une description des sous-interprĂ©teurs et dâun environnement de sous-interprĂ©teur. Si lâoption lastpipe est activĂ©e en utilisant la commande interne shopt (consultez la description de shopt ci-dessous), le dernier Ă©lĂ©ment dâun pipeline peut ĂȘtre exĂ©cutĂ© par le processus de lâinterprĂ©teur quand le contrĂŽle des tĂąches est dĂ©sactivĂ©.
Listes
Une liste est une suite dâun ou plusieurs pipelines sĂ©parĂ©s par lâun des opĂ©rateurs ; , & , && ou || et facultativement terminĂ©e par ; , & ou <changement de ligne> .
Dans cette liste dâopĂ©rateurs, && et || ont une prioritĂ© identique, suivis par ; et & , qui ont Ă©galement une prioritĂ© identique.
Une suite dâun ou plusieurs changements de ligne peut apparaĂźtre dans une liste Ă la place dâun point-virgule pour dĂ©limiter les commandes.
Si une commande se termine par lâopĂ©rateur de contrĂŽle & , lâinterprĂ©teur lâexĂ©cute en arriĂšre-plan , dans un sous-interprĂ©teur. LâinterprĂ©teur nâattend pas que la commande se termine et lâĂ©tat renvoyĂ© est 0 . Elles sont dĂ©signĂ©es comme des commandes asynchrones . Les commandes sĂ©parĂ©es par un ; sont exĂ©cutĂ©es successivement, lâinterprĂ©teur attend que chaque commande se termine tour Ă tour. LâĂ©tat renvoyĂ© est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e.
Les listes ET et OU sont des suites dâun ou plusieurs pipelines sĂ©parĂ©s respectivement par les opĂ©rateurs de contrĂŽle && et || . Les listes ET et OU sont exĂ©cutĂ©es avec associativitĂ© Ă gauche. Une liste ET est de la forme
commande_1 && commande_2
commande_2 est exécutée si, et seulement si, commande_1 renvoie zéro comme état final (succÚs).
Une liste OU a la forme
commande_1 || commande_2
commande_2 est exĂ©cutĂ©e si, et seulement si, commande_1 renvoie un Ă©tat final diffĂ©rent de zĂ©ro. LâĂ©tat renvoyĂ© par des listes ET et OU est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e dans la liste.
Commandes composées
Une
commande
composée
est lâune des constructions
suivantes. Dans la plupart des cas, une
liste
dans
une description de commande pourrait ĂȘtre
séparée du reste de la commande par un ou
plusieurs changements de ligne, et pourrait ĂȘtre
suivie dâun changement de ligne Ă la place
dâun point-virgule.
(
liste
)
liste est exĂ©cutĂ©e dans un sous-interprĂ©teur (consultez ENVIRONNEMENT DâEXĂCUTION DES COMMANDES ci-dessous pour une description dâun environnement de sous-interprĂ©teur). Les affectations de variables et les commandes internes qui affectent lâenvironnement de lâinterprĂ©teur nâont pas dâeffet une fois que la commande se termine. LâĂ©tat renvoyĂ© est lâĂ©tat final de la liste .
{ liste ; }
liste est simplement exĂ©cutĂ©e avec lâenvironnement de lâinterprĂ©teur en cours. liste doit se terminer par un changement de ligne ou un point-virgule. Cette construction est connue sous le nom de commandes groupĂ©es . LâĂ©tat renvoyĂ© est lâĂ©tat final de la liste . Remarquez que contrairement aux mĂ©tacaractĂšres ( et ) , { et } sont des mots rĂ©servĂ©s qui ne doivent apparaĂźtre que lĂ oĂč un mot rĂ©servĂ© peut ĂȘtre reconnu. Puisquâils ne conduiront pas Ă un dĂ©coupage en mots, ils doivent ĂȘtre sĂ©parĂ©s de la liste par un blanc ou un autre mĂ©tacaractĂšre de lâinterprĂ©teur.
(( expression ))
Lâ expression est Ă©valuĂ©e selon les rĂšgles dĂ©crites ci-dessous dans ĂVALUATION ARITHMĂTIQUE . Si la valeur arithmĂ©tique de lâexpression est diffĂ©rente de zĂ©ro, lâĂ©tat renvoyĂ© est 0 ; sinon lâĂ©tat renvoyĂ© est 1 . Lâ expression est sujette aux mĂȘmes dĂ©veloppements que si elle Ă©tait entre guillemets doubles, mais les caractĂšres guillemet double dans lâ expression ne sont pas traitĂ©s expressĂ©ment et sont supprimĂ©s.
[[ expression ]]
Renvoie un Ă©tat de 0 ou 1 selon lâĂ©valuation de la condition expression . Les conditions sont composĂ©es de primitives dĂ©crites ci-dessous dans CONDITIONS . Les mots entre [[ et ]] ne sont sujets ni au dĂ©coupage en mots ni au dĂ©veloppement des chemins. LâinterprĂ©teur effectue le dĂ©veloppement des tildes, des paramĂštres, des variables, le dĂ©veloppement arithmĂ©tique, la substitution de commande et de processus, ainsi que la suppression des protections sur ces mots (les dĂ©veloppements qui se produiraient si les mots Ă©taient entre guillemets doubles). Les opĂ©rateurs conditionnels comme -f ne doivent pas ĂȘtre protĂ©gĂ©s afin dâĂȘtre reconnus comme primitives.
Lorsquâils sont utilisĂ©s avec [[ , les opĂ©rateurs < et > ordonnent dâun point de vue lexicographique en utilisant les paramĂštres linguistiques rĂ©gionaux actuels.
Consultez la description de la commande interne test (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous) pour la gestion des paramĂštres (câest-Ă -dire des paramĂštres manquants).
Quand les opĂ©rateurs == et != sont utilisĂ©s, la chaĂźne placĂ©e Ă droite de lâopĂ©rateur est considĂ©rĂ©e comme Ă©tant un motif dont la correspondance est recherchĂ©e selon les rĂšgles dĂ©crites ci-dessous dans Motifs gĂ©nĂ©riques , comme si lâoption extglob de lâinterprĂ©teur Ă©tait activĂ©e. LâopĂ©rateur = est Ă©quivalent Ă == . Si lâoption dâinterprĂ©teur nocasematch est activĂ©e, la mise en correspondance est effectuĂ©e sans tenir compte de la casse (diffĂ©rence majuscule/minuscule) des caractĂšres alphabĂ©tiques. La valeur renvoyĂ©e est 0 si les chaĂźnes correspondent ( == ) ou ne correspondent pas ( != ), au motif et 1 sinon. Toute partie du motif peut ĂȘtre protĂ©gĂ©e pour forcer la partie protĂ©gĂ©e Ă correspondre en tant que chaĂźne.
Un opĂ©rateur binaire supplĂ©mentaire, =Ë , est disponible, avec la mĂȘme prioritĂ© que == et != . Lorsquâil est utilisĂ©, la chaĂźne Ă droite de lâopĂ©rateur est considĂ©rĂ©e comme une expression rationnelle Ă©tendue POSIX et est mise en correspondance en consĂ©quence (en utilisant habituellement les interfaces POSIX regcomp et regexec comme avec regex (3)). La valeur renvoyĂ©e est 0 si la chaĂźne correspond au motif et 1 si elle ne correspond pas. Si lâexpression rationnelle nâest pas syntaxiquement correcte, la valeur renvoyĂ©e de lâexpression conditionnelle est 2 . Si lâoption dâinterprĂ©teur nocasematch est activĂ©e, la mise en correspondance est effectuĂ©e sans tenir compte de la casse. Si une partie du motif est protĂ©gĂ©e, cette partie est mise en correspondance littĂ©ralement. Cela signifie que tout caractĂšre dans la partie protĂ©gĂ©e doit correspondre lui-mĂȘme, plutĂŽt que dâavoir tout motif particulier correspondant ayant une signification. Si le motif est stockĂ© dans une variable de lâinterprĂ©teur, la protection de dĂ©veloppement de variable force le motif entier Ă correspondre littĂ©ralement. Traitez prudemment les expressions entre crochets des expressions rationnelles, car les caractĂšres de protection et de motifs habituels perdent leur signification entre crochets.
Le motif correspondra sâil correspond Ă nâimporte quelle partie de la chaĂźne. Ancrer le motif avec les opĂ©rateurs dâexpression rationnelle Ë et $ pour le forcer Ă correspondre Ă la totalitĂ© de la chaĂźne. La variable tableau BASH_REMATCH enregistre quelle partie de la chaĂźne correspond au motif. LâĂ©lĂ©ment de BASH_REMATCH dâindice 0 contient la partie de la chaĂźne correspondant Ă la totalitĂ© de lâexpression rationnelle. Les sous-chaĂźnes correspondant aux sous-expressions entre parenthĂšses dans lâexpression rationnelle sont sauvegardĂ©es avec les indices restants de BASH_REMATCH . LâĂ©lĂ©ment de BASH_REMATCH dâindice n est la partie de la chaĂźne correspondant Ă la n -iĂšme sous-expression entre parenthĂšses. La configuration de BASH_REMATCH par bash est de portĂ©e globale ; la dĂ©clarer comme une variable locale mĂšnera Ă des rĂ©sultats inattendus.
Les expressions peuvent ĂȘtre combinĂ©es en utilisant les opĂ©rateurs suivants, dĂ©crits par ordre de prioritĂ© dĂ©croissante :
( expression )
Renvoie la valeur de lâ expression . Cela peut ĂȘtre utilisĂ© pour surpasser la prioritĂ© normale des opĂ©rateurs.
! expression
Vrai si expression est fausse.
expression1 && expression2
Vrai si expression1 et expression2 sont toutes les deux vraies.
expression1 || expression2
Vrai si expression1 ou expression2 est vraie.
Les opĂ©rateurs && et || nâĂ©valuent pas expression2 si la valeur de expression1 suffit Ă dĂ©terminer la valeur renvoyĂ©e par la condition tout entiĂšre.
for nom [ [ in [ mot ... ] ] ; ] do liste ; done
La liste de mots suivant in est dĂ©veloppĂ©e, produisant une liste dâĂ©lĂ©ments. La variable nom prend tour Ă tour la valeur de chacun des Ă©lĂ©ments et liste est exĂ©cutĂ©e Ă chaque fois. Si in mot est omis, la commande for exĂ©cute la liste une fois pour chacun des paramĂštres positionnels existants (consultez PARAMĂTRES ci-dessous). LâĂ©tat renvoyĂ© est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e. Si le dĂ©veloppement des Ă©lĂ©ments suivant in conduit Ă une liste vide, aucune commande nâest exĂ©cutĂ©e et lâĂ©tat renvoyĂ© est 0 .
for (( expr1 ; expr2 ; expr3 )) ; do liste ; done
Lâexpression arithmĂ©tique expr1 est dâabord Ă©valuĂ©e selon les rĂšgles dĂ©crites ci-dessous sous ĂVALUATION ARITHMĂTIQUE . Lâexpression arithmĂ©tique expr2 est ensuite Ă©valuĂ©e rĂ©pĂ©titivement jusquâĂ valoir zĂ©ro. Chaque fois que expr2 est Ă©valuĂ©e en une valeur diffĂ©rente de zĂ©ro, liste est exĂ©cutĂ©e et lâexpression arithmĂ©tique expr3 est Ă©valuĂ©e. Si lâune des expressions est omise, elle est considĂ©rĂ©e comme sâĂ©valuant Ă 1 . La valeur renvoyĂ©e est lâĂ©tat final de la derniĂšre commande dans liste qui est exĂ©cutĂ©e ou faux si lâune des expressions est incorrecte.
select nom [ in mot ] ; do liste ; done
La liste de mots Ă la suite de in est dĂ©veloppĂ©e, produisant une liste dâĂ©lĂ©ments et lâensemble des mots dĂ©veloppĂ©s est imprimĂ© sur la sortie dâerreur standard, chacun prĂ©cĂ©dĂ© par un nombre. Si in mot est omis, les paramĂštres positionnels sont imprimĂ©s (consultez PARAMĂTRES ci-dessous). select affiche alors lâinvite PS3 et lit une ligne depuis lâentrĂ©e standard. Si la ligne est constituĂ©e dâun nombre correspondant Ă lâun des mots affichĂ©s, alors ce mot est affectĂ© Ă la valeur de la variable nom . Si la ligne est vide, les mots et lâinvite sont affichĂ©s Ă nouveau. Si une fin de fichier (EOF) est lue, la commande select se termine et renvoie 1 . Toute autre valeur lue force la variable nom Ă ĂȘtre dĂ©finie Ă NULL. La ligne lue est conservĂ©e dans la variable REPLY . La liste est exĂ©cutĂ©e aprĂšs chaque sĂ©lection, jusquâĂ ce quâune commande break soit atteinte. LâĂ©tat final de select est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e dans la liste ou zĂ©ro si aucune commande nâa Ă©tĂ© exĂ©cutĂ©e.
case mot in [ [(] motif [ | motif ] ... ) liste ;; ] ... esac
Une commande case commence dâabord par dĂ©velopper le mot , puis essaye de le mettre en correspondance tour Ă tour avec chacun des motifs en utilisant les rĂšgles de mise en correspondance dans Motifs gĂ©nĂ©riques ci-dessous. Le mot est dĂ©veloppĂ© en utilisant le dĂ©veloppement du tilde, le dĂ©veloppement des paramĂštres et des variables, le dĂ©veloppement arithmĂ©tique, la substitution de commande, la substitution de processus et la suppression des protections. Chaque motif examinĂ© est dĂ©veloppĂ© en utilisant le dĂ©veloppement du tilde, le dĂ©veloppement des paramĂštres et des variables, le dĂ©veloppement arithmĂ©tique, la substitution de commande et la substitution de processus et la suppression des protections. Si lâoption dâinterprĂ©teur nocasematch est activĂ©e, la mise en correspondance est effectuĂ©e sans tenir compte de la casse des caractĂšres alphabĂ©tiques. Quand une correspondance est trouvĂ©e, la liste associĂ©e est exĂ©cutĂ©e. DĂšs quâun motif correct a Ă©tĂ© trouvĂ©, il nây a plus dâautre essai si lâopĂ©rateur ;; est utilisĂ©. Si ;& est utilisĂ© au lieu de ;; , lâexĂ©cution continue avec la liste associĂ©e au jeu de motifs suivant. Si ;;& est utilisĂ© au lieu de ;; , lâinterprĂ©teur essaye la liste de motifs suivante, si elle existe, et exĂ©cute toute liste associĂ©e Ă un motif correspondant, poursuivant lâexĂ©cution de la dĂ©claration de cas comme si la liste de motifs nâavait pas de correspondance. Le code de retour est zĂ©ro si aucun motif ne correspond. Sinon il est le code de retour de la derniĂšre commande exĂ©cutĂ©e dans la liste .
if
liste
;
then
liste
; [
elif
liste
;
then
liste
; ] ... [
else
liste
;
]
fi
La liste du if est exĂ©cutĂ©e. Si son Ă©tat final est zĂ©ro, la liste du then est exĂ©cutĂ©e. Sinon, chacune des listes des elif est exĂ©cutĂ©e tour Ă tour et si son Ă©tat final est zĂ©ro, la liste du then associĂ© est exĂ©cutĂ©e et la commande se termine. Sinon, la liste du else , si prĂ©sente, est exĂ©cutĂ©e. LâĂ©tat final est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e ou zĂ©ro si aucune condition nâa Ă©tĂ© satisfaite.
while
liste-1
;
do
liste-2
;
done
until
liste-1
;
do
liste-2
;
done
La commande while rĂ©pĂšte la liste liste-2 tant que la derniĂšre commande de la liste liste-1 renvoie un Ă©tat final de zĂ©ro. La commande until est identique Ă la commande while , sauf que le test est inversé : la liste-2 est exĂ©cutĂ©e tant que la derniĂšre commande de la liste-1 renvoie un Ă©tat final diffĂ©rent de zĂ©ro. LâĂ©tat final des commandes while et until est lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e dans la liste-2 ou zĂ©ro si aucune commande nâa Ă©tĂ© exĂ©cutĂ©e.
Coprocessus
Un coprocessus est une commande dâinterprĂ©teur prĂ©cĂ©dĂ©e par le mot rĂ©servĂ© coproc . Un coprocessus est exĂ©cutĂ© de façon asynchrone dans un sous-interprĂ©teur, comme si la commande se terminait par lâopĂ©rateur de contrĂŽle & , avec un tube bidirectionnel Ă©tabli entre lâinterprĂ©teur dâexĂ©cution et le coprocessus.
La syntaxe dâun coprocessus est :
coproc [ NOM ] commande [ redirections ]
Cela crĂ©e un coprocessus nommĂ© NOM . commande peut ĂȘtre une commande simple ou une commande composĂ©e (voir plus haut). NOM est le nom dâune variable de lâinterprĂ©teur. Si NOM nâest pas fourni, le nom par dĂ©faut est COPROC .
Le format recommandé à utiliser pour un coprocessus est le suivant :
coproc [ NOM ] { commande [ redirections ]; }
Cette forme est recommandée parce que des commandes simples font que le coprocessus est toujours appelé COPROC , et elle est plus simple à utiliser et plus complÚte que les autres commandes composées.
Si commande est une commande composĂ©e, NOM est optionnel. Le mot suivant coproc dĂ©termine si ce mot est interprĂ©tĂ© comme un nom de variable : il est interprĂ©tĂ© comme NOM si ce nâest pas un mot rĂ©servĂ© qui introduit une commande composĂ©e. Si commande est une commande simple, NOM nâest pas permis ; cela est destinĂ© Ă Ă©viter une confusion entre NOM et le premier mot de la commande simple.
Quand le coprocessus est exĂ©cutĂ©, lâinterprĂ©teur crĂ©e une variable tableau (consultez Tableaux ci-dessous) appelĂ©e NOM dans le contexte de lâinterprĂ©teur dâexĂ©cution. La sortie standard de commande est connectĂ©e par un tube Ă un descripteur de fichier dans lâinterprĂ©teur dâexĂ©cution, et ce descripteur de fichier est affectĂ© Ă NOM [0]. LâentrĂ©e standard de commande est connectĂ©e par un tube Ă un descripteur de fichier dans lâinterprĂ©teur dâexĂ©cution, et ce descripteur de fichier est affectĂ© Ă NOM [1]. Ce tube est Ă©tabli avant toute redirection indiquĂ©e par la commande (consultez REDIRECTIONS ci-dessous). Les descripteurs de fichier peuvent ĂȘtre utilisĂ©s comme arguments aux commandes dâinterprĂ©teur et redirections en utilisant les dĂ©veloppements standards de mot. Les descripteurs de fichier autres que ceux créés pour exĂ©cuter des substitutions de commande et de processus, ne sont pas disponibles dans les sous-interprĂ©teurs.
Lâidentifiant du processus (PID) de lâinterprĂ©teur engendrĂ© pour exĂ©cuter le coprocessus est la valeur disponible de la variable NOM _PID. La commande interne wait peut ĂȘtre rĂ©utilisĂ©e pour attendre que le coprocessus soit terminĂ©.
Puisque le coprocessus est créé comme une commande asynchrone, la commande coproc se termine toujours avec succĂšs. LâĂ©tat renvoyĂ© dâun coprocessus est lâĂ©tat final de commande .
DĂ©finitions des fonctions de lâinterprĂ©teur
Une fonction de
lâinterprĂ©teur est un objet qui est
appelé comme une commande simple et qui
exécute une commande composée avec un nouveau
jeu de paramĂštres positionnels. Les fonctions de
lâinterprĂ©teur sont dĂ©clarĂ©es de
la façon suivante :
nomfonction
()
commande-composée
[
redirection
]
function
nomfonction
[()]
commande-composée
[
redirection
]
Cela dĂ©finit une fonction possĂ©dant le nomfonction mentionnĂ©. Le mot rĂ©servĂ© function est facultatif. Sâil est fourni, les parenthĂšses sont facultatives. Le corps de la fonction est la commande composĂ©e commande-composĂ©e (consultez Commandes composĂ©es ci-dessus). Cette commande est gĂ©nĂ©ralement une liste de commandes entre { et }, mais peut ĂȘtre nâimporte quelle commande dĂ©crite dans Commandes composĂ©es ci-dessus. Si le mot rĂ©servĂ© function est utilisĂ©, mais que les parenthĂšses ne sont pas fournies, les accolades sont recommandĂ©es. La commande-composĂ©e est exĂ©cutĂ©e chaque fois que nomfonction est indiquĂ© comme le nom dâune commande normale. En mode POSIX , nomfonction doit un nom valable dâinterprĂ©teur et ne peut pas ĂȘtre le nom dâune des commandes internes spĂ©ciales de POSIX (« special builtins »). En mode par dĂ©faut, un nom de fonction peut ĂȘtre nâimporte quel mot de lâinterprĂ©teur non protĂ©gĂ© qui ne contient pas de $ . Toutes les redirections (consultez REDIRECTIONS ci-dessous) indiquĂ©es lorsquâune fonction est dĂ©finie sont effectuĂ©es lorsque la fonction est exĂ©cutĂ©e. Le code de retour dâune dĂ©finition de fonction est zĂ©ro, Ă moins quâune erreur de syntaxe ne se produise ou quâune fonction en lecture seule nâexiste dĂ©jĂ avec le mĂȘme nom. Lorsque la fonction est exĂ©cutĂ©e, le code de retour est celui de la derniĂšre commande exĂ©cutĂ©e dans le corps de la fonction (consultez FONCTIONS ci-dessous).
COMMENTAIRES
Dans un interprĂ©teur non interactif ou dans un interprĂ©teur interactif avec lâoption interactive_comments activĂ©e par la commande interne shopt (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous), un mot commençant par # conduit Ă ignorer ce mot et tous les caractĂšres restants sur la ligne. Un interprĂ©teur interactif sans lâoption interactive_comments nâautorise pas les commentaires. Lâoption interactive_comments est activĂ©e par dĂ©faut dans les interprĂ©teurs interactifs.
PROTECTIONS
Les protections (« quoting ») permettent de forcer lâinterprĂ©teur Ă ignorer la signification spĂ©ciale de certains caractĂšres ou mots. Les protections peuvent ĂȘtre utilisĂ©es pour dĂ©sactiver le traitement des caractĂšres spĂ©ciaux, Ă©viter la reconnaissance des mots rĂ©servĂ©s ou empĂȘcher le dĂ©veloppement des paramĂštres.
Tous les mĂ©tacaractĂšres dĂ©crits ci-dessus dans DĂFINITIONS ont des significations spĂ©ciales pour lâinterprĂ©teur et doivent ĂȘtre protĂ©gĂ©s pour ne reprĂ©senter que leur propre caractĂšre.
Lorsque les outils de dĂ©veloppement de lâhistorique des commandes sont utilisĂ©s (consultez DĂVELOPPEMENT DE LâHISTORIQUE ci-dessous), le caractĂšre de dĂ©veloppement de lâhistorique , gĂ©nĂ©ralement ! , doit ĂȘtre protĂ©gĂ© pour Ă©viter le dĂ©veloppement de lâhistorique.
Il y a trois mécanismes de protection : le caractÚre de protection, les guillemets simples (« single quotes ») et les guillemets doubles (« double quotes »).
Le caractĂšre de protection est une contre-oblique ( \ ) non protĂ©gĂ©e. Il prĂ©serve la valeur littĂ©rale du caractĂšre qui le suit, Ă lâexception du <changement de ligne>. Si un couple \ <changement de ligne> apparaĂźt et si la contre-oblique nâest pas elle-mĂȘme protĂ©gĂ©e, lâensemble \ <changement de ligne> est considĂ©rĂ© comme une continuation de ligne (câest-Ă -dire quâil est supprimĂ© du flux dâentrĂ©e et ignorĂ© en pratique).
Encadrer des caractĂšres entre des guillemets simples prĂ©serve la valeur littĂ©rale de chacun des caractĂšres entre guillemets simples. Un guillemet simple ne peut pas ĂȘtre placĂ© entre deux guillemets simples, mĂȘme sâil est prĂ©cĂ©dĂ© dâune contre-oblique.
Encadrer des caractĂšres entre des guillemets doubles prĂ©serve la valeur littĂ©rale de chacun des caractĂšres sauf $ , ` , \ et, lorsque le dĂ©veloppement de lâhistorique est activĂ©, ! . Quand lâinterprĂ©teur et en mode POSIX , le ! nâa pas de signification particuliĂšre entre des guillemets doubles, mĂȘme quand le dĂ©veloppement de lâhistorique est activĂ©. Les caractĂšres $ et ` conservent leurs significations spĂ©ciales entre guillemets doubles. La contre-oblique ne conserve sa signification spĂ©ciale que lorsquâelle est suivie par lâun des caractĂšres suivants : $ , ` , " , \ ou <changement de ligne> . Un guillemet double peut ĂȘtre protĂ©gĂ© entre deux guillemets doubles en Ă©tant prĂ©cĂ©dĂ© dâune contre-oblique. Sâil est activĂ©, le dĂ©veloppement de lâhistorique sera effectuĂ©, Ă moins quâun ! apparaissant entre guillemets doubles ne soit protĂ©gĂ© par une contre-oblique. La contre-oblique prĂ©cĂ©dant le ! nâest pas supprimĂ©e.
Les caractĂšres spĂ©ciaux * et @ ont des significations spĂ©ciales lorsquâils se trouvent entre des guillemets doubles (consultez PARAMĂTRES ci-dessous).
Les séquences de caractÚres de la forme $ ' chaßne ' sont traitées comme une variante spéciale des guillemets simples. La séquence est développée en chaßne avec les caractÚres protégés par contre-oblique remplacés comme indiqué par la norme ANSI C. Les suites de protection par contre-oblique, si présentes, sont décodées comme suit :
|
\a |
alerte (alarme)Â ; |
||
|
\b |
espace arriĂšre |
||
|
\e |
|||
|
\E |
caractÚre de protection ; |
||
|
\f |
saut de page (« form feed ») ; |
||
|
\n |
saut de ligne (« new line ») ; |
||
|
\r |
retour chariot |
||
|
\t |
tabulation horizontale |
||
|
\v |
tabulation verticale |
||
|
\\ |
contre-oblique ; |
||
|
\' |
guillemet simple ; |
||
|
\" |
guillemet double ; |
||
|
\? |
point dâinterrogation ; |
||
|
\ nnn |
le caractĂšre 8Â bits dont la valeur en octal vaut nnn (un Ă trois chiffres)Â ; |
||
|
\x HH |
le caractÚre 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ; |
||
|
\u HHHH |
le caractÚre Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHH (un à quatre chiffres hexadécimaux) ; |
\U HHHHHHHH
le caractÚre Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHHHHHH (un à huit chiffres hexadécimaux) ;
|
\c x |
un caractĂšre contrĂŽle- x . |
Le rĂ©sultat dĂ©veloppĂ© est protĂ©gĂ© par des guillemets simples comme si le symbole dollar nâavait pas Ă©tĂ© prĂ©sent.
Une chaĂźne entre guillemets doubles prĂ©cĂ©dĂ©e dâun symbole dollar ( $ " chaine ") conduira Ă la traduction de la chaĂźne selon les paramĂštres linguistiques rĂ©gionaux en vigueur. Lâinfrastructure de gettext parcourt la chaĂźne et effectue la traduction, en utilisant les variables de lâinterprĂ©teur LC_MESSAGES , TEXTDOMAINDIR et TEXTDOMAIN . Si les paramĂštres linguistiques rĂ©gionaux actuels sont C ou POSIX , sâil nây a pas de traduction disponible ou si la chaĂźne nâest pas traduite, le symbole dollar est ignorĂ©. Câest une forme de double protection, ainsi la chaĂźne demeure entre guillemets doubles par dĂ©faut quâelle soit ou non traduite et remplacĂ©e. Si lâoption noexpand_translation est activĂ©e en utilisant la commande interne shopt , les chaĂźnes traduites sont protĂ©gĂ©es par des guillemets simples au lieu de guillemets doubles. Consultez la description de shopt ci-dessous dans COMMANDES INTERNES DE LâINTERPRĂTEUR .
PARAMĂTRES
Un paramĂštre est une entitĂ© permettant de stocker des valeurs. Il peut ĂȘtre un nom , un nombre ou un des caractĂšres spĂ©ciaux dĂ©crits ci-dessous, dans ParamĂštres spĂ©ciaux . Une variable est un paramĂštre notĂ© par un nom . Une variable possĂšde une valeur et zĂ©ro ou plusieurs attributs . Les attributs sont affectĂ©s en utilisant la commande interne declare (consultez declare dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Un paramĂštre est créé si une valeur lui a Ă©tĂ© affectĂ©e. La chaĂźne NULL est une valeur correcte. Une fois quâune variable est créée, elle ne peut ĂȘtre dĂ©truite quâen utilisant la commande interne unset (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Une variable peut recevoir une valeur par une affectation de la forme
nom =[ valeur ]
Si aucune valeur nâest indiquĂ©e, une chaĂźne NULL est affectĂ©e Ă la variable. Toutes les valeurs sont sujettes au dĂ©veloppement du tilde, des paramĂštres et des variables, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique et Ă la suppression des protections (consultez DĂVELOPPEMENTS ci-dessous). Si une variable a son attribut integer configurĂ©, alors la valeur est soumise Ă lâĂ©valuation arithmĂ©tique, mĂȘme si la syntaxe $((...)) nâest pas utilisĂ©e (consultez DĂ©veloppement arithmĂ©tique ci-dessous). Le dĂ©coupage en mots et le dĂ©veloppement des chemins ne sont pas effectuĂ©s. Les affectations peuvent Ă©galement apparaĂźtre comme arguments des commandes internes suivantes : alias , declare , typeset , export , readonly et local (commandes de dĂ©claration ). En mode POSIX , ces commandes internes pourraient apparaĂźtre dans une commande aprĂšs une ou plusieurs instances de la commande interne command et conserver ces propriĂ©tĂ©s dâaffectation.
Dans le contexte oĂč une affectation affecte une valeur Ă une variable de lâinterprĂ©teur ou Ă un indice de tableau, lâopĂ©rateur += peut ĂȘtre utilisĂ© pour ajouter ou additionner Ă la prĂ©cĂ©dente valeur de la variable. Cela comprend des arguments pour les commandes internes, comme declare , qui acceptent des affectations (commandes de dĂ©claration ). Lorsque lâopĂ©rateur += est appliquĂ© Ă une variable dont lâattribut integer (entier) a Ă©tĂ© positionnĂ©, la valeur est Ă©valuĂ©e comme une expression arithmĂ©tique et additionnĂ©e Ă la valeur actuelle de la variable qui est Ă©galement Ă©valuĂ©e. Lorsque += est appliquĂ© Ă une variable tableau en utilisant lâaffectation composĂ©e (consultez Tableaux ci-dessous), la valeur de la variable nâest pas dĂ©truite (comme elle lâest lorsque = est utilisĂ©) et les nouvelles valeurs sont ajoutĂ©es au tableau, en commençant Ă lâindice maximal du tableau plus un (pour les tableaux indicĂ©s) ou ajoutĂ©es comme un couple clef valeur pour un tableau associatif. Lorsque lâopĂ©rateur est appliquĂ© Ă une variable de type chaĂźne, la valeur est dĂ©veloppĂ©e et concatĂ©nĂ©e en valeur de la variable.
Lâattribut nameref peut ĂȘtre affectĂ© Ă une variable en utilisant lâoption -n des commandes internes declare et local (consultez la description des commandes declare et local ci-dessous) pour crĂ©er une nameref ou une rĂ©fĂ©rence vers une autre variable. Cela permet aux variables dâĂȘtre manipulĂ©es indirectement. Ă chaque fois quâune variable nameref est rĂ©fĂ©rencĂ©e, affectĂ©e, dĂ©truite ou a ses attributs modifiĂ©s (autrement quâen utilisant ou en changeant lâattribut nameref lui-mĂȘme), lâopĂ©ration est en fait rĂ©alisĂ©e sur la variable indiquĂ©e par la valeur de la variable nameref . nameref est gĂ©nĂ©ralement utilisĂ©e dans des fonctions dâinterprĂ©teur pour rĂ©fĂ©rencer une variable dont le nom est passĂ© en argument de la fonction. Par exemple, si un nom de variable est passĂ© en premier argument Ă une fonction dâinterprĂ©teur, exĂ©cuter
declare -n ref=$1
dans la fonction crĂ©e une variable de nameref ref dont la valeur est le nom de la variable passĂ©e en premier argument. Les rĂ©fĂ©rences et affectations de ref et les modifications de ses attributs sont traitĂ©es comme des rĂ©fĂ©rences, affectations et modifications dâattribut sur la variable dont le nom a Ă©tĂ© passĂ© par $1 . Si la variable de contrĂŽle dans une boucle for a lâattribut nameref , la liste de mots peut ĂȘtre une liste de variables dâinterprĂ©teur et une rĂ©fĂ©rence de nom est Ă©tablie pour chaque mot de la liste, tour Ă tour, lorsque la boucle est exĂ©cutĂ©e. Lâattribut nameref ne peut pas ĂȘtre donnĂ© aux variables de type tableau. Cependant, les variables nameref peuvent rĂ©fĂ©rencer des variables de type tableau et des variables de type tableau indicĂ©. nameref peut ĂȘtre dĂ©truit en utilisant lâoption -n de la commande interne unset . Sinon, si unset est exĂ©cutĂ© avec le nom dâune variable nameref en argument, la variable rĂ©fĂ©rencĂ©e par la variable nameref sera dĂ©truite.
ParamĂštres positionnels
Un paramĂštre positionnel est un paramĂštre notĂ© par un ou plusieurs chiffres (Ă lâexception du chiffre 0 seul). Les paramĂštres positionnels sont affectĂ©s avec les arguments de lâinterprĂ©teur lors de son appel. Ils peuvent ĂȘtre rĂ©affectĂ©s avec la commande interne set . On ne peut pas utiliser les affectations pour les paramĂštres positionnels. Ils sont temporairement remplacĂ©s lors de lâexĂ©cution dâune fonction de lâinterprĂ©teur (consultez FONCTIONS ci-dessous).
Un paramĂštre positionnel constituĂ© de plusieurs chiffres doit ĂȘtre encadrĂ© par des accolades lors de son dĂ©veloppement (consultez DĂVELOPPEMENTS ci-dessous).
ParamÚtres spéciaux
LâinterprĂ©teur traite plusieurs paramĂštres spĂ©cifiquement. Ces paramĂštres peuvent uniquement ĂȘtre consultĂ©s, il nâest pas permis de leur affecter une valeur.
|
* |
Se dĂ©veloppe en lâensemble des paramĂštres positionnels, commençant par le premier. Quand le dĂ©veloppement nâest pas entre guillemets doubles, tous les paramĂštres positionnels se dĂ©veloppent en mots sĂ©parĂ©s. Dans les contextes oĂč il sont rĂ©alisĂ©s, ces mots sont soumis Ă dâautres dĂ©coupages en mots et dĂ©veloppements de chemin. Quand le dĂ©veloppement se produit entre des guillemets doubles, * se transforme en un seul mot constituĂ© de la valeur de tous les paramĂštres positionnels sĂ©parĂ©s par le premier caractĂšre de la variable spĂ©ciale IFS . Câest-Ă -dire que "$*" est Ă©quivalent Ă "$1 c $2 c ..." , oĂč c est le premier caractĂšre de la valeur de la variable IFS . Si IFS est inexistante, les paramĂštres sont sĂ©parĂ©s par des espaces. Si IFS est NULL, les paramĂštres sont accolĂ©s sans sĂ©parateurs. |
||
|
@ |
Se dĂ©veloppe en ensemble des paramĂštres positionnels, commençant par le premier. Dans les contextes oĂč le dĂ©coupage en mots est rĂ©alisĂ©, chaque paramĂštre positionnel se dĂ©veloppe en un mot sĂ©paré ; si ces mots ne sont pas entre des guillemets doubles, ils sont sujets au dĂ©coupage de mot. Dans les contextes oĂč il nây a pas de dĂ©coupage en mots, chaque paramĂštre positionnel se dĂ©veloppe en un mot distinct sĂ©parĂ© par des espaces. Quand le dĂ©veloppement a lieu entre guillemets doubles, chaque paramĂštre se dĂ©veloppe en un mot distinct. Câest-Ă -dire que "$@" est Ă©quivalent Ă "$1" "$2" .... Si le dĂ©veloppement des guillemets doubles survient dans un mot, le dĂ©veloppement du premier paramĂštre est accolĂ© Ă la premiĂšre partie du mot dâorigine et le dĂ©veloppement du dernier paramĂštre est accolĂ© Ă la derniĂšre partie du mot dâorigine. Quand il nây a pas de paramĂštres positionnels, "$@" et $@ ne se dĂ©veloppent en rien (câest-Ă -dire quâils sont simplement Ă©liminĂ©s). |
||
|
# |
Correspond au nombre de paramÚtres positionnels, en base décimale. |
||
|
? |
Se développe en état final du dernier pipeline exécuté au premier plan. |
||
|
- |
Est remplacĂ© par la liste des options de lâinterprĂ©teur indiquĂ©es durant lâappel, configurĂ©es avec la commande interne set ou celles créées par lâinterprĂ©teur lui-mĂȘme (comme avec lâoption -i ). |
||
|
$ |
Se transforme en PID de lâinterprĂ©teur. Dans un sous-interprĂ©teur, il se transforme en PID de lâinterprĂ©teur et non pas du sous-interprĂ©teur. |
||
|
! |
Se transforme en PID de la derniĂšre tĂąche placĂ©e en arriĂšre-plan, soit exĂ©cutĂ©e comme une commande asynchrone, soit en utilisant la commande interne bg (consultez CONTRĂLE DES TĂCHES ci-dessous). |
||
|
0 |
Se dĂ©veloppe en nom de lâinterprĂ©teur ou du script. Ce paramĂštre est créé lors de lâinitialisation de lâinterprĂ©teur. Si bash est appelĂ© avec un fichier de commandes, $0 correspond au nom de ce fichier. Si bash est lancĂ© avec lâoption -c , alors $0 contient le premier argument, sâil y en a un, aprĂšs la chaĂźne de commandes Ă exĂ©cuter. Sinon, ce paramĂštre contient le nom de fichier utilisĂ© pour appeler bash , comme indiquĂ© par lâargument zĂ©ro. |
Variables de lâinterprĂ©teur
Les variables suivantes sont créées par lâinterprĂ©teur :
|
_ |
Au lancement de lâinterprĂ©teur, contient le chemin dâaccĂšs utilisĂ© pour appeler lâinterprĂ©teur, ou le script en cours dâexĂ©cution tel quâil est passĂ© dans lâenvironnement ou dans la liste des arguments. Devient ensuite le dernier argument de la commande simple prĂ©cĂ©dente exĂ©cutĂ©e au premier plan, aprĂšs dĂ©veloppement. Contient Ă©galement le chemin dâaccĂšs complet de chaque commande exĂ©cutĂ©e et se retrouve dans lâenvironnement exportĂ© Ă cette commande. Lors de la vĂ©rification de lâarrivĂ©e de courrier, contient le nom du fichier de courrier en cours de consultation. |
||
|
BASH |
Se dĂ©veloppe en chemin dâaccĂšs complet Ă lâinstance actuelle de bash . |
BASHOPTS
Liste des options activĂ©es de lâinterprĂ©teur, sĂ©parĂ©es par des deux-points « : ». Chaque mot de la liste est un argument correct pour lâoption -s de la commande interne shopt (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Les options apparaissant dans BASHOPTS sont celles indiquĂ©es comme actives par shopt . Si cette variable est dans lâenvironnement au lancement de bash , chaque option de la liste est activĂ©e avant de lire les fichiers dâinitialisation. Cette variable est en lecture seule.
BASHPID
Se transforme en PID du processus de lâinterprĂ©teur bash actuel. DiffĂšre de $$ sous certaines conditions, comme dans les sous-interprĂ©teurs ne nĂ©cessitant pas que bash soit rĂ©initialisĂ©. Les assignations Ă BASHPID nâont pas dâeffet. Si BASHPID est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_ALIASES
Une variable de type tableau associatif dont les Ă©lĂ©ments correspondent Ă une liste interne dâalias comme celle gĂ©rĂ©e par la commande interne alias . Les Ă©lĂ©ments ajoutĂ©s Ă ce tableau apparaissent dans la liste dâalias ; cependant, la destruction dâĂ©lĂ©ments du tableau ne provoque pas actuellement le retrait des alias de la liste dâalias. Si BASH_ALIASES est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_ARGC
Une variable de type tableau contenant le nombre de paramĂštres de chaque trame de la pile dâappel dâexĂ©cution de lâinterprĂ©teur bash actuel. Le nombre de paramĂštres du sous-programme actuel (fonction de lâinterprĂ©teur ou du script exĂ©cutĂ© par . ou source ) est au sommet de la pile. Lorsquâun sous-programme est exĂ©cutĂ©, le nombre de paramĂštres passĂ©s est placĂ© dans BASH_ARGC . LâinterprĂ©teur crĂ©e BASH_ARGC seulement dans le mode de traçage Ă©tendu (consultez ci-dessous la description de lâoption extdebug de la commande interne shopt ). La configuration de extdebug aprĂšs que lâinterprĂ©teur ait dĂ©marrĂ© lâexĂ©cution dâun script, ou le rĂ©fĂ©rencement de cette variable quand extdebug nâexiste pas, peut provoquer une incohĂ©rence des valeurs.
BASH_ARGV
Une variable de type tableau contenant tous les paramĂštres de la pile dâappel dâexĂ©cution de lâinterprĂ©teur bash actuel. Le dernier paramĂštre du dernier sous-programme est au sommet de la pile ; le premier paramĂštre de lâappel initial est en bas. Lorsquâun sous-programme est exĂ©cutĂ©, les paramĂštres fournis sont placĂ©s dans BASH_ARGV . BASH_ARGV est créé uniquement dans le mode de traçage Ă©tendu (consultez ci-dessous la description de lâoption extdebug de la commande interne shopt ). La configuration de extdebug aprĂšs que lâinterprĂ©teur ait dĂ©marrĂ© lâexĂ©cution dâun script, ou le rĂ©fĂ©rencement de cette variable quand extdebug nâexiste pas peut provoquer une incohĂ©rence des valeurs.
BASH_ARGV0
Quand elle est rĂ©fĂ©rencĂ©e, cette variable dĂ©veloppe le nom de lâinterprĂ©teur ou du script de lâinterprĂ©teur (identique Ă $0 ; voir la description du paramĂštre spĂ©cial 0 ci-dessus). Lâaffectation dâune valeur Ă BASH_ARGV0 fait que cette valeur est aussi assignĂ©e Ă $0 . Si BASH_ARGV0 est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_CMDS
Une variable de type tableau associatif dont les Ă©lĂ©ments correspondent Ă une table de hachage interne de commandes comme celle gĂ©rĂ©e par la commande interne hash . Les Ă©lĂ©ments ajoutĂ©s Ă ce tableau apparaissent dans la table de hachage ; cependant, la destruction dâĂ©lĂ©ments du tableau ne provoque pas actuellement le retrait des noms de commandes de la table de hachage. Si BASH_CMDS est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_COMMAND
La commande en cours dâexĂ©cution ou sur le point dâĂȘtre exĂ©cutĂ©e, Ă moins que lâinterprĂ©teur nâexĂ©cute une commande Ă la suite dâune capture, auquel cas câest la commande sâexĂ©cutant au moment de la capture. Si BASH_COMMAND est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_EXECUTION_STRING
Lâargument commande de lâoption dâappel -c .
BASH_LINENO
Une variable de type tableau dont les Ă©lĂ©ments sont les numĂ©ros de ligne des fichiers sources oĂč chaque Ă©lĂ©ment correspondant de FUNCNAME a Ă©tĂ© invoquĂ©. ${BASH_LINENO[ $i ]} est le numĂ©ro de la ligne dans le fichier source ( ${BASH_SOURCE[ $i+1 ]} ) oĂč ${FUNCNAME[ $i ]} a Ă©tĂ© appelĂ© (ou ${BASH_LINENO[ $i-1 ]} si consultĂ© depuis une autre fonction de lâinterprĂ©teur). Utilisez LINENO pour obtenir le numĂ©ro de ligne actuel.
BASH_LOADABLES_PATH
Liste des rĂ©pertoires, sĂ©parĂ©s par des deux-points « : », que lâinterprĂ©teur consulte lorsquâil cherche les commandes internes chargeables dynamiquement spĂ©cifiĂ©es par la commande enable .
BASH_REMATCH
Une variable de type tableau dont les Ă©lĂ©ments sont affectĂ©s avec lâopĂ©rateur binaire =Ë dans la commande conditionnelle [[ . LâĂ©lĂ©ment dâindice 0 est la partie de la chaĂźne correspondant Ă lâexpression rationnelle complĂšte. LâĂ©lĂ©ment dâindice n est la partie de la chaĂźne correspondant Ă la n -iĂšme sous-expression entre parenthĂšses.
BASH_SOURCE
Une variable de type tableau dont les Ă©lĂ©ments sont les noms des fichiers source oĂč les noms des fonctions dâinterprĂ©teur correspondants Ă la variable de type tableau FUNCNAME sont dĂ©finis. La fonction dâinterprĂ©teur ${FUNCNAME[ $i ]} est dĂ©finie dans le fichier ${BASH_SOURCE[ $i ]} et appelĂ©e depuis ${BASH_SOURCE[ $i+1 ]} .
BASH_SUBSHELL
IncrĂ©mentĂ©e dans tous les sous-interprĂ©teurs et environnements de sous-interprĂ©teur quand lâinterprĂ©teur commence Ă sâexĂ©cuter dans cet environnement. La valeur initiale est 0 . Si BASH_COMMAND est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
BASH_VERSINFO
Une variable de type tableau protégée en écriture dont les éléments représentent la version de cette instance de bash . Cette valeur est affectée aux éléments du tableau comme suit :
|
BASH_VERSINFO[ 0 ] |
Le numéro majeur de la version ( release ). |
||
|
BASH_VERSINFO[ 1 ] |
Le numéro mineur de la version ( version ). |
||
|
BASH_VERSINFO[ 2 ] |
Le niveau de correctif. |
||
|
BASH_VERSINFO[ 3 ] |
Le numéro de compilation. |
||
|
BASH_VERSINFO[ 4 ] |
Le statut de cette version (par exemple beta1 ). |
||
|
BASH_VERSINFO[ 5 ] |
La valeur de MACHTYPE . |
BASH_VERSION
Se développe en une chaßne décrivant le numéro de version de cette instance de bash .
COMP_CWORD
Un indice dans ${COMP_WORDS} du mot contenant la position actuelle du curseur. Cette variable nâest disponible que dans les fonctions de lâinterprĂ©teur appelĂ©es par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous).
COMP_KEY
La touche (ou derniĂšre touche dâune suite de touches) utilisĂ©e pour appeler la fonction de complĂštement actuelle.
COMP_LINE
La ligne de commande actuelle. Cette variable nâest disponible que dans les fonctions de lâinterprĂ©teur appelĂ©es par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous).
COMP_POINT
Lâindice de la position actuelle du curseur relatif au dĂ©but de la commande actuelle. Si la position actuelle du curseur est Ă la fin de la commande actuelle, la valeur de cette variable est Ă©gale Ă ${#COMP_LINE} . Cette variable nâest disponible que dans les fonctions de lâinterprĂ©teur et les commandes externes appelĂ©es par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous).
COMP_TYPE
ConfigurĂ©e Ă une valeur entiĂšre correspondant au type de complĂštement essayĂ© qui a provoquĂ© lâappel dâune fonction de complĂštement : TAB pour un complĂštement normal, ? pour lâaffichage des complĂštements aprĂšs tabulations successives, ! pour lâaffichage des alternatives de complĂštement de mot partiel, @ pour afficher les complĂštements si le mot nâest pas modifiĂ©, ou % pour le menu de complĂštement. Cette variable nâest disponible que dans les fonctions de lâinterprĂ©teur et les commandes externes appelĂ©es par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous).
COMP_WORDBREAKS
Le jeu de caractĂšres que la bibliothĂšque readline considĂšre comme sĂ©parateurs de mots lors du complĂštement de mot. Si COMP_WORDBREAKS est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
COMP_WORDS
Une variable de type tableau (consultez Tableaux ci-dessous) consistant en mots individuels de la ligne de commande actuelle. La ligne est dĂ©coupĂ©e en mots comme readline la dĂ©couperait, en utilisant COMP_WORDBREAKS tel que dĂ©crit ci-dessus. Cette variable nâest disponible que dans les fonctions de lâinterprĂ©teur appelĂ©es par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous).
|
COPROC |
Une variable de type tableau (consultez Tableaux ci-dessous) créée pour représenter les descripteurs de fichier pour les sorties depuis et les entrées vers un coprocessus non nommé (consultez Coprocessus ci-dessus). |
DIRSTACK
Une variable de type tableau (consultez Tableaux ci-dessous) reprĂ©sentant le contenu actuel de la pile de rĂ©pertoires. Les rĂ©pertoires apparaissent dans la pile dans lâordre dans lequel la commande interne dirs les affiche. Les affectations des Ă©lĂ©ments de cette variable tableau peuvent ĂȘtre utilisĂ©s pour modifier les rĂ©pertoires dĂ©jĂ dans la pile, mais les commandes internes pushd et popd doivent ĂȘtre utilisĂ©es pour ajouter et enlever des rĂ©pertoires. Lâaffectation de cette variable ne modifiera pas le rĂ©pertoire actuel. Si DIRSTACK est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
EPOCHREALTIME
Ă chaque fois que ce paramĂštre est consultĂ©, il se dĂ©veloppe en nombre de secondes Ă©coulĂ©es depuis lâEpoch Unix (consultez time (3)) comme valeur en virgule flottante avec une granularitĂ© dâune microseconde. Les affectations Ă EPOCHREALTIME sont ignorĂ©es. Si EPOCHREALTIME est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
EPOCHSECONDS
Ă chaque fois que ce paramĂštre est consultĂ©, il se dĂ©veloppe en nombre de secondes Ă©coulĂ©es depuis lâEpoch Unix (consultez time (3)). Les affectations Ă EPOCHSECONDS sont ignorĂ©es. Si EPOCHSECONDS est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
|
EUID |
Contient lâUID effectif de lâutilisateur, initialisĂ© au dĂ©marrage de lâinterprĂ©teur. Cette variable est en lecture seule. |
FUNCNAME
Une variable de type tableau contenant le nom de toutes les fonctions de lâinterprĂ©teur actuellement dans la pile dâappel dâexĂ©cution. LâĂ©lĂ©ment dâindice 0 est le nom de lâune des fonctions en cours dâexĂ©cution dans lâinterprĂ©teur. LâĂ©lĂ©ment le plus bas (celui avec lâindice le plus grand) est "main". Cette variable nâexiste que si une fonction de lâinterprĂ©teur est en cours dâexĂ©cution. Les affectations de FUNCNAME nâont aucun effet. Si FUNCNAME est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
Cette variable peut ĂȘtre utilisĂ©e avec BASH_LINENO et BASH_SOURCE . Chaque Ă©lĂ©ment de FUNCNAME a des Ă©lĂ©ments correspondant dans BASH_LINENO et BASH_SOURCE pour dĂ©crire la pile dâappel. Par exemple, ${FUNCNAME[ $i ]} a Ă©tĂ© appelĂ© depuis le fichier ${BASH_SOURCE[ $i+1 ]} Ă la ligne numĂ©ro ${BASH_LINENO[ $i ]} . La commande interne caller affiche la pile dâappel actuelle utilisant ces renseignements.
|
GROUPS |
Une variable de type tableau contenant la liste des groupes dont lâutilisateur est membre. Les affectations de GROUPS nâont aucun effet. Si GROUPS est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite. |
HISTCMD
Le numĂ©ro dâhistorique, ou lâindice dans la file dâhistorique, de la commande en cours. Les affectations de HISTCMD sont ignorĂ©es. Si HISTCMD est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
HOSTNAME
Automatiquement configurée au nom de la machine actuelle.
HOSTTYPE
Automatiquement configurĂ©e en chaĂźne dĂ©crivant de façon unique le type de machine sur laquelle bash sâexĂ©cute. La valeur par dĂ©faut dĂ©pend du systĂšme.
|
LINENO |
Chaque fois que ce paramĂštre est consultĂ©, lâinterprĂ©teur le remplace par un nombre dĂ©cimal reprĂ©sentant le numĂ©ro de la ligne actuelle (commençant Ă 1), au sein du script ou de la fonction. Hors dâun script ou dâune fonction, la valeur nâa pas nĂ©cessairement de sens. Si LINENO est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite. |
MACHTYPE
Automatiquement configurĂ©e en chaĂźne dĂ©crivant le type du systĂšme sur lequel bash sâexĂ©cute, dans le format standard de GNU processeur-compagnie-systĂšme . La valeur par dĂ©faut dĂ©pend du systĂšme.
MAPFILE
Une variable de type tableau (consultez Tableaux ci-dessous) créée pour reprĂ©senter le texte lu par la commande interne mapfile si aucun nom de variable nâa Ă©tĂ© fourni.
|
OLDPWD |
Le répertoire de travail précédent tel que configuré par la commande cd . |
||
|
OPTARG |
La valeur du dernier argument dâoption traitĂ© par la commande interne getopts (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). |
||
|
OPTIND |
Lâindice du prochain argument Ă traiter par la commande interne getopts (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). |
||
|
OSTYPE |
Automatiquement configurĂ©e en chaĂźne dĂ©crivant le systĂšme dâexploitation sur lequel bash sâexĂ©cute. La valeur par dĂ©faut dĂ©pend du systĂšme. |
PIPESTATUS
Une variable de type tableau (consultez Tableaux ci-dessous) contenant une liste des états finaux des processus exécutés dans le pipeline exécuté le plus récemment au premier plan (qui peut éventuellement contenir une seule commande).
|
PPID |
Lâidentifiant du processus parent de lâinterprĂ©teur. Cette variable est en lecture seule. |
||
|
PWD |
Le répertoire de travail actuel tel que configuré par la commande cd . |
||
|
RANDOM |
Ă chaque fois que ce paramĂštre est consultĂ©, un entier alĂ©atoire entre 0 et 32767 est engendrĂ©. Lâaffectation dâune valeur Ă RANDOM initialise (ensemence) la suite de nombres alĂ©atoires. Si RANDOM est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite. |
READLINE_ARGUMENT
Tout argument numĂ©rique donnĂ© Ă une commande readline qui a Ă©tĂ© dĂ©finie en utilisant "bind -x" (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous) quand il a Ă©tĂ© invoquĂ©.
READLINE_LINE
Le contenu du tampon de ligne readline , pour utiliser avec "bind -x" (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
READLINE_MARK
La position de la marque (point dâinsertion enregistrĂ©) dans le tampon de ligne readline , pour utiliser avec "bind -x" (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Les caractĂšres entre le point dâinsertion et la marque sont souvent appelĂ©s la zone .
READLINE_POINT
La position du point dâinsertion dans le tampon de ligne readline , pour utiliser avec "bind -x" (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
|
REPLY |
ConfigurĂ©e en ligne de saisie lue par la commande interne read lorsquâaucun argument nâa Ă©tĂ© fourni. |
SECONDS
Ă chaque fois que ce paramĂštre est consultĂ©, il se dĂ©veloppe en nombre de secondes Ă©coulĂ©es depuis le lancement de lâinterprĂ©teur. Si une valeur est affectĂ©e Ă SECONDS , la valeur renvoyĂ©e lors dâune consultation ultĂ©rieure est le temps en seconde Ă©coulĂ© depuis lâaffectation, ajoutĂ© Ă la valeur affectĂ©e. Le nombre de secondes entre le moment du lancement de lâinterprĂ©teur et lâheure actuelle sont toujours dĂ©terminĂ©s en interrogeant lâhorloge systĂšme. Si SECONDS est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
SHELLOPTS
Liste des options activĂ©es de lâinterprĂ©teur, sĂ©parĂ©es par des deux-points « : ». Chaque mot de la liste est un argument correct pour lâoption -o de la commande interne set (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Les options apparaissant dans SHELLOPTS sont celles indiquĂ©es comme actives par set -o . Si cette variable est dans lâenvironnement au lancement de bash , chaque option de la liste est activĂ©e avant de lire les fichiers dâinitialisation. Cette variable est en lecture seule.
|
SHLVL |
IncrĂ©mentĂ© de 1 Ă chaque appel dâune instance de bash . |
SRANDOM
Cette variable engendre un nombre pseudo-alĂ©atoire de 32 bits chaque fois quâelle est consultĂ©e. Le gĂ©nĂ©rateur de nombres alĂ©atoires nâest pas linĂ©aire sur les systĂšmes qui prennent en charge /dev/urandom ou arc4random , aussi chaque nombre renvoyĂ© nâa aucune relation avec les nombres prĂ©cĂ©dents. Le gĂ©nĂ©rateur de nombre alĂ©atoire ne peut pas ĂȘtre ensemencĂ©, aussi les affectations Ă cette variable nâont aucun effet. Si SRANDOM est dĂ©truite, elle perd ses propriĂ©tĂ©s spĂ©ciales, mĂȘme si elle est recréée par la suite.
|
UID |
Contient lâUID de lâutilisateur actuel, initialisĂ© au dĂ©marrage de lâinterprĂ©teur. Cette variable est en lecture seule. |
Les variables
suivantes sont utilisées par
lâinterprĂ©teur. Dans certains cas,
bash
affecte des valeurs par défaut aux variables ;
ces cas sont décrits ci-dessous.
BASH_COMPAT
La valeur est utilisĂ©e pour dĂ©finir le niveau de compatibilitĂ© de lâinterprĂ©teur. Consultez MODE DE COMPATIBILITĂ DE LâINTERPRĂTEUR ci-dessous pour une description des diffĂ©rents niveaux de compatibilitĂ© et leurs consĂ©quences. La valeur peut ĂȘtre un nombre dĂ©cimal (par exemple 4.2) ou entier (par exemple 42) correspondant au niveau de compatibilitĂ© voulu. Si BASH_COMPAT est dĂ©truite ou dĂ©finie comme une chaĂźne vide, le niveau de compatibilitĂ© est dĂ©fini Ă la valeur par dĂ©faut de la version actuelle. Si BASH_COMPAT est dĂ©finie Ă une valeur de niveau de compatibilitĂ© impossible, lâinterprĂ©teur affiche un message dâerreur et dĂ©finit le niveau de compatibilitĂ© Ă la valeur par dĂ©faut de la version actuelle. Les valeurs possibles correspondent aux niveaux de compatibilitĂ© dĂ©crits ci-dessous dans MODE DE COMPATIBILITĂ DE LâINTERPRĂTEUR . Par exemple, 4.2 et 42 sont des valeurs possibles qui correspondent Ă lâoption compat42 de shopt et dĂ©finissent le niveau de compatibilitĂ© Ă 42. La version actuelle est aussi une valeur possible.
BASH_ENV
Si ce paramĂštre existe lorsque bash exĂ©cute un script, sa valeur est considĂ©rĂ©e comme un nom de fichier contenant les commandes dâinitialisation de lâinterprĂ©teur, comme dans Ë/.bashrc . La valeur de BASH_ENV est soumise au dĂ©veloppement des paramĂštres, Ă la substitution de commande et au dĂ©veloppement arithmĂ©tique avant dâĂȘtre considĂ©rĂ©e comme un nom de fichier. PATH nâest pas utilisĂ©e pour rechercher le fichier obtenu.
BASH_XTRACEFD
Si configurĂ©e Ă une valeur entiĂšre correspondant Ă un descripteur de fichier correct, bash Ă©crira la trace de sortie si set -x est activĂ© vers ce descripteur de fichier. Le descripteur de fichier est fermĂ© quand BASH_XTRACEFD est dĂ©truite ou quâune nouvelle valeur lui est affectĂ©e. DĂ©truire BASH_XTRACEFD ou lui affecter la chaĂźne vide conduit la trace de sortie Ă ĂȘtre envoyĂ©e vers la sortie dâerreur standard. Remarquez que configurer BASH_XTRACEFD Ă 2 (le descripteur de fichier de la sortie dâerreur standard) puis la dĂ©truire revient Ă fermer la sortie dâerreur standard.
|
CDPATH |
Le chemin de recherche de la commande interne cd . Il sâagit dâune liste de rĂ©pertoires, sĂ©parĂ©s par des deux-points « : », que lâinterprĂ©teur consulte lorsquâil cherche un sous-rĂ©pertoire destination de la commande cd . Un exemple de valeur est ".:Ë:/usr". |
CHILD_MAX
DĂ©finir le nombre de valeurs dâĂ©tat de sortie des enfants dont lâinterprĂ©teur doit se souvenir. Bash ne permettra pas Ă cette valeur dâĂȘtre infĂ©rieure Ă un minimum imposĂ© par POSIX, ni dâĂȘtre supĂ©rieure Ă une valeur maximale (8192 pour lâinstant). La valeur minimale dĂ©pend du systĂšme.
COLUMNS
UtilisĂ©e par la commande composĂ©e select pour dĂ©terminer la largeur du terminal lors de lâaffichage des listes de sĂ©lection. Automatiquement configurĂ©e si lâoption checkwinsize est activĂ©e ou dans un interprĂ©teur interactif Ă la rĂ©ception dâun signal SIGWINCH .
COMPREPLY
Une variable de type tableau dans lequel bash lit les complĂštements possibles produits par une fonction de lâinterprĂ©teur appelĂ©e par les outils de complĂštement programmables (consultez ComplĂštement programmable ci-dessous). Chaque Ă©lĂ©ment du tableau contient un complĂštement possible.
|
EMACS |
Si bash trouve cette variable dans lâenvironnement lorsque lâinterprĂ©teur dĂ©marre avec la valeur "t", il considĂšre que lâinterprĂ©teur est lancĂ© dans un tampon dâinterprĂ©teur dâEmacs et dĂ©sactive lâĂ©dition en ligne. |
||
|
ENV |
DĂ©veloppĂ© et exĂ©cutĂ© de façon similaire Ă BASH_ENV (consultez APPEL ci-dessus) quand lâinterprĂ©teur interactif est invoquĂ© en mode POSIX . |
EXECIGNORE
Une liste, sĂ©parĂ©e par des deux-points « : », de motifs de lâinterprĂ©teur (voir Motifs gĂ©nĂ©riques ) dĂ©finissant la liste de noms de fichier Ă ignorer par la commande de recherche utilisant PATH . Les fichiers dont les noms de chemin complets correspondent Ă un de ces motifs ne sont pas considĂ©rĂ©s comme des fichiers exĂ©cutables en vue du complĂštement et de lâexĂ©cution de commande au moyen dâune recherche dans PATH . Cela nâaffecte pas le comportement des commandes [ , test et [[ . Les noms de chemin complets dans la table de hachage des commandes ne sont pas sujets Ă EXECIGNORE . Utiliser cette variable pour ignorer des fichiers de bibliothĂšque partagĂ©e dont le bit exĂ©cutable est prĂ©sent, mais qui ne sont pas des fichiers exĂ©cutables. La correspondance de motif respecte la configuration de lâoption dâinterprĂ©teur extglob .
|
FCEDIT |
LâĂ©diteur par dĂ©faut utilisĂ© par la commande interne fc . |
FIGNORE
Une liste de suffixes, sĂ©parĂ©s par des deux-points « : », que bash ignorera lors du complĂštement des noms de fichiers (consultez READLINE ci-dessous). Un nom de fichier dont le suffixe correspond Ă lâun de ceux mentionnĂ©s dans FIGNORE est exclu de la liste des noms de fichiers correspondant pour le complĂštement. Par exemple, cette variable peut prendre la valeur ".o:Ë" (des protections sont nĂ©cessaires pour lâaffectation dâune valeur Ă cette variable qui contient des tildes).
FUNCNEST
Si configurĂ©e Ă une valeur numĂ©rique strictement positive, cela dĂ©finit le niveau maximal dâimbrication de fonctions. Les invocations de fonctions qui dĂ©passent ce niveau dâimbrication forceront la commande actuelle Ă abandonner.
GLOBIGNORE
Une liste de motifs sĂ©parĂ©s par des deux-points « : », dĂ©finissant lâensemble des noms de fichier Ă ignorer lors du dĂ©veloppement des chemins. Si un nom de fichier correspondant Ă un des motif de dĂ©veloppement des chemins correspond Ă©galement Ă un des motifs dans GLOBIGNORE , il est supprimĂ© de la liste des correspondances.
HISTCONTROL
Une liste de valeurs, sĂ©parĂ©es par des deux-points « : », commandant la façon dont les commandes sont sauvegardĂ©es dans la file dâhistorique. Si la liste des valeurs contient la valeur ignorespace , les lignes commençant par une espace ne sont pas sauvegardĂ©es dans la file dâhistorique. La valeur ignoredups conduit Ă ne pas sauvegarder une ligne correspondant exactement Ă la ligne de commande prĂ©cĂ©dente. La prĂ©sence de ignoreboth est un condensĂ© pour ignorespace et ignoredups . La valeur erasedups conduit Ă retirer de la file dâhistorique toutes les lignes prĂ©cĂ©dant la ligne actuelle et lui correspondant avant que cette ligne y soit sauvegardĂ©e. Toute valeur qui ne fait pas partie de la liste ci-dessus est ignorĂ©e. Si HISTCONTROL est inexistante ou si elle ne contient pas une valeur correcte, toutes les lignes lues par lâanalyseur de lâinterprĂ©teur seront sauvegardĂ©es dans la file dâhistorique, selon la valeur de HISTIGNORE . La seconde ligne et les suivantes dâune commande multiligne ne sont pas testĂ©es et sont ajoutĂ©es dans lâhistorique indĂ©pendamment de la valeur de HISTCONTROL .
HISTFILE
Le nom du fichier dans lequel lâhistorique des commandes est sauvegardĂ© (consultez HISTORIQUE ci-dessous). Par dĂ©faut, il sâagit de Ë/.bash_history . Si inexistante, lâhistorique des commandes nâest pas sauvegardĂ© lorsquâun interprĂ©teur se termine.
HISTFILESIZE
Le nombre maximal de lignes contenues dans le fichier dâhistorique. Quand cette variable contient une valeur, le fichier dâhistorique est tronquĂ©, si besoin, pour ne pas contenir plus que ce nombre de lignes en enlevant les entrĂ©es les plus anciennes. Ce fichier est aussi tronquĂ© Ă cette taille aprĂšs son Ă©criture quand un interprĂ©teur se termine. Si la valeur est 0 , le fichier dâhistorique est tronquĂ© Ă une taille nulle. Les valeurs non numĂ©riques ou nĂ©gatives empĂȘchent la troncature. LâinterprĂ©teur dĂ©finit la valeur par dĂ©faut Ă la valeur de HISTSIZE aprĂšs avoir lu tous les fichiers dâinitialisation.
HISTIGNORE
Une liste de motifs, sĂ©parĂ©s par des deux-points « : », dĂ©terminant quelles lignes de commande devraient ĂȘtre sauvegardĂ©es dans la file dâhistorique. Chaque motif est accrochĂ© au dĂ©but de la ligne et doit correspondre Ă celle-ci complĂštement (aucun ajout de « * » implicite). Chaque motif est comparĂ© Ă chaque ligne aprĂšs application des vĂ©rifications de HISTCONTROL . En plus des motifs gĂ©nĂ©riques usuels de lâinterprĂ©teur, « & » correspond Ă la ligne prĂ©cĂ©dente de lâhistorique. « & » peut ĂȘtre protĂ©gĂ©e par une contre-oblique ; la contre-oblique est supprimĂ©e avant de tenter une comparaison. La seconde ligne et les suivantes dâune commande composĂ©e multiligne ne sont pas testĂ©es et sont ajoutĂ©es dans lâhistorique quelque soit la valeur de HISTIGNORE . La correspondance de motif respecte la configuration de lâoption dâinterprĂ©teur extglob .
HISTSIZE
Le nombre de commandes Ă mĂ©moriser dans lâhistorique (consultez HISTORIQUE ci-dessous). Si la valeur est 0 , les commandes ne sont pas sauvegardĂ©es dans la liste dâhistorique. Les valeurs nĂ©gatives permettent de sauvegarder toutes les commandes dans la liste dâhistorique (sans limite). LâinterprĂ©teur dĂ©finit la valeur par dĂ©faut Ă 500 aprĂšs avoir lu tous les fichiers dâinitialisation.
HISTTIMEFORMAT
Si cette variable existe et nâest pas NULL, sa valeur est utilisĂ©e comme une chaĂźne de caractĂšres par strftime (3) afin dâimprimer lâhorodatage associĂ© Ă chaque Ă©lĂ©ment de lâhistorique affichĂ© par la commande interne history . Si cette variable existe, les horodatages sont Ă©crits dans le fichier dâhistorique afin dâĂȘtre conservĂ©s au fur et Ă mesure des sessions de lâinterprĂ©teur. Cela utilise le caractĂšre de commentaire dâhistorique pour distinguer lâhorodatage des autres lignes de lâhistorique.
|
HOME |
Le rĂ©pertoire dâaccueil de lâutilisateur actuel ; lâargument par dĂ©faut de la commande interne cd . La valeur de cette variable est aussi utilisĂ©e lors du dĂ©veloppement du tilde. |
HOSTFILE
Contient le nom dâun fichier ayant le mĂȘme format /etc/hosts qui devra ĂȘtre lu lorsque lâinterprĂ©teur aura besoin de complĂ©ter un nom de machine. La liste des complĂštements possibles de noms de machine peut ĂȘtre changĂ©e pendant lâexĂ©cution de lâinterprĂ©teur ; Ă la tentative de complĂštement de nom de machine suivant le changement de valeur, bash ajoute le contenu du nouveau fichier Ă la liste existante. Si HOSTFILE existe mais est vide, ou dĂ©signe un fichier non accessible en lecture, bash essaie de lire /etc/hosts pour obtenir la liste des complĂštements de noms de machine possibles. Lorsque HOSTFILE est dĂ©truite, la liste des noms de machine est effacĂ©e.
|
IFS |
Le séparateur de champs interne (« Internal Field Separator ») qui est utilisé pour le découpage en mots aprÚs les développements et pour découper les lignes en mots avec la commande interne read . La valeur par défaut est « <espace><tab><changement_de_ligne> ». |
IGNOREEOF
Commande le comportement dâun interprĂ©teur interactif Ă la rĂ©ception dâun caractĂšre EOF (fin de fichier) comme unique saisie. Si elle existe, la valeur est le nombre de caractĂšres EOF consĂ©cutifs qui doivent ĂȘtre tapĂ©s comme premiers caractĂšres sur une ligne de saisie avant que bash ne termine. Si la variable existe mais que sa valeur nâest pas numĂ©rique ou si elle nâa pas de valeur, la valeur par dĂ©faut est 10. Si elle nâexiste pas, EOF signifie la fin de la saisie pour lâinterprĂ©teur.
INPUTRC
Le nom du fichier dâinitialisation pour readline , prioritaire sur le fichier par dĂ©faut de Ë/.inputrc (consultez READLINE ci-dessous).
INSIDE_EMACS
Si cette variable apparaĂźt dans lâenvironnement quand le script dĂ©marre, bash considĂšre quâil sâexĂ©cute dans un tampon dâinterprĂ©teur dâEmacs et peut dĂ©sactiver lâĂ©dition de ligne, suivant la valeur de TERM .
|
LANG |
Utilisée pour déterminer le paramÚtre linguistique régional pour toute catégorie non spécifiquement sélectionnée par une variable commençant par LC_ . |
||
|
LC_ALL |
Cette variable surpasse LANG et toute autre variable LC_ indiquant une catégorie de paramÚtres linguistiques régionaux. |
LC_COLLATE
Cette variable dĂ©termine lâordre de collation utilisĂ© pour trier les rĂ©sultats du dĂ©veloppement des chemins et dĂ©termine le comportement des expressions dâintervalle, des classes dâĂ©quivalences et des suites de collations dans le dĂ©veloppement des chemins et la correspondance de motifs.
LC_CTYPE
Cette variable dĂ©termine lâinterprĂ©tation des caractĂšres et le comportement des classes de caractĂšres lors du dĂ©veloppement des chemins et de la recherche de correspondances de motifs.
LC_MESSAGES
Cette variable dĂ©termine le paramĂštre linguistique rĂ©gional utilisĂ© pour traduire les chaĂźnes entre guillemets doubles prĂ©cĂ©dĂ©es dâun $ .
LC_NUMERIC
Cette variable détermine le paramÚtre linguistique régional utilisé pour formater les nombres.
LC_TIME
Cette variable détermine le paramÚtre linguistique régional utilisé pour les données et le temps.
|
LINES |
UtilisĂ©e par la commande composĂ©e select pour dĂ©terminer la taille des colonnes lors de lâaffichage des listes de sĂ©lection. Automatiquement configurĂ©e si lâoption checkwinsize est activĂ©e ou dans un interprĂ©teur interactif Ă la rĂ©ception dâun signal SIGWINCH . |
||
|
|
Si ce paramĂštre correspond Ă un nom de fichier ou de rĂ©pertoire et si la variable MAILPATH est inexistante, bash informe lâutilisateur de lâarrivĂ©e de messages dans le fichier indiquĂ© ou le rĂ©pertoire au format Maildir. |
MAILCHECK
Indique la durĂ©e (en seconde) au bout de laquelle bash vĂ©rifie si un nouveau message est arrivĂ©. La valeur par dĂ©faut est 60 secondes. Lorsque le dĂ©lai est Ă©coulĂ©, lâinterprĂ©teur vĂ©rifiera la prĂ©sence dâun courrier Ă©lectronique avant dâafficher son invite de base. Si cette variable est inexistante, ou contient une valeur strictement nĂ©gative, lâinterprĂ©teur dĂ©sactive la vĂ©rification du courrier.
MAILPATH
Une liste de noms de fichiers
séparés par des deux-points
« : », dans lesquels on
vĂ©rifiera lâarrivĂ©e de courrier. Le nom
dâun fichier peut ĂȘtre suivi dâun point
dâinterrogation « ? », puis
dâune chaĂźne de caractĂšres indiquant le
message Ă afficher en cas de courrier. Dans cette
chaĂźne, le paramĂštre
$_
correspond au
nom du fichier de courrier actuel. Exemple :
MAILPATH
='/usr/spool/mail/bfox?"Vous avez du
courrier":Ë/shell-mail?"$_ a du
courrier !"'
Bash
peut ĂȘtre configurĂ©e pour fournir une
valeur par dĂ©faut pour cette variable (il nây a
pas de valeur par dĂ©faut), mais lâemplacement
du fichier de boßte à lettres dépend du
systĂšme (par exemple
/var/mail/
$USER
).
|
OPTERR |
Si configurĂ©e Ă la valeur 1 , bash affiche les messages dâerreurs engendrĂ©s par la commande interne getopts (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). OPTERR est initialisĂ©e avec la valeur 1 Ă chaque appel de lâinterprĂ©teur ou au lancement dâun script. |
||
|
PATH |
Le chemin de recherche des commandes Ă exĂ©cuter. Il sâagit dâune liste de rĂ©pertoires, sĂ©parĂ©s par des deux-points « : » dans lesquels lâinterprĂ©teur recherche les commandes (consultez EXĂCUTION DES COMMANDES ci-dessous). Un nom de rĂ©pertoire de taille nulle (NULL) dans la valeur de PATH dĂ©signe le rĂ©pertoire actuel. Un rĂ©pertoire NULL peut apparaĂźtre comme deux deux-points consĂ©cutifs ou comme des deux-points en dĂ©but ou en fin. Le chemin par dĂ©faut dĂ©pend du systĂšme et est choisi par lâadministrateur installant bash . Une valeur commune est ââ/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin: /sbinââ. |
POSIXLY_CORRECT
Si cette variable existe dans lâenvironnement lorsque bash dĂ©marre, lâinterprĂ©teur passe en mode POSIX avant de lire les fichiers dâinitialisation comme si lâoption --posix avait Ă©tĂ© fournie. Si elle est créée pendant que lâinterprĂ©teur est en cours dâexĂ©cution, bash active le mode POSIX comme si la commande set -o posix a Ă©tĂ© exĂ©cutĂ©e. Quand lâinterprĂ©teur passe en mode POSIX , il configure cette variable si elle ne lâa pas dĂ©jĂ Ă©tĂ©.
PROMPT_COMMAND
Si cette variable existe et est un tableau, la valeur de chaque Ă©lĂ©ment existant est exĂ©cutĂ©e comme commande prĂ©alablement Ă lâaffichage de chaque invite de base. Si elle existe mais nâest pas une variable de type tableau, sa valeur est utilisĂ©e comme commande Ă exĂ©cuter Ă la place.
PROMPT_DIRTRIM
Si elle contient un nombre supĂ©rieur Ă zĂ©ro, cette valeur est utilisĂ©e comme nombre de rĂ©pertoires finaux Ă conserver lors du dĂ©veloppement des protections de chaĂźne dâinvite \w et \W (consultez INVITES ci-dessous). Les caractĂšres supprimĂ©s sont remplacĂ©s par une ellipse.
|
PS0 |
La valeur de ce paramĂštre est dĂ©veloppĂ©e (consultez INVITES ci-dessous) puis affichĂ©e par les interprĂ©teurs interactifs aprĂšs la lecture dâune commande et avant son exĂ©cution. |
||
|
PS1 |
La valeur de ce paramĂštre est dĂ©veloppĂ©e puis utilisĂ©e comme chaĂźne dâinvite de base (consultez INVITES ci-dessous). La valeur par dĂ©faut est « \s-\v\$ ». |
||
|
PS2 |
La valeur de ce paramĂštre est dĂ©veloppĂ©e comme PS1 puis utilisĂ©e comme chaĂźne dâinvite secondaire. La valeur par dĂ©faut est « > ». |
||
|
PS3 |
La valeur de ce paramĂštre est utilisĂ©e comme invite de la commande select (consultez GRAMMAIRE DE LâINTERPRĂTEUR ci-dessus). |
||
|
PS4 |
La valeur de ce paramĂštre est dĂ©veloppĂ©e comme PS1 puis affichĂ©e avant chaque commande affichĂ©e par bash lors dâun suivi dâexĂ©cution. Le premier caractĂšre de PS4 est rĂ©pĂ©tĂ© autant de fois que nĂ©cessaire pour indiquer le niveau dâimbrication. La valeur par dĂ©faut est « + ». |
||
|
SHELL |
Cette variable dĂ©veloppe le chemin dâaccĂšs complet Ă lâinterprĂ©teur de commandes. Si elle est inexistante au dĂ©marrage de lâinterprĂ©teur, bash lui affecte le chemin dâaccĂšs complet Ă lâinterprĂ©teur de commandes de connexion de lâutilisateur actuel. |
TIMEFORMAT
La valeur de ce paramĂštre est utilisĂ©e en tant que chaĂźne de format indiquant comment les informations de paramĂ©trage doivent ĂȘtre affichĂ©es pour les pipelines prĂ©cĂ©dĂ©s du mot rĂ©servĂ© time . Le caractĂšre % introduit une suite de caractĂšres de protection qui est dĂ©veloppĂ©e en valeur de temps ou autre information. Les suites de caractĂšres de protection et leurs significations sont les suivantes ; les crochets marquent les parties facultatives.
|
%% |
Un % seul (non interprété). |
||
|
% [ p ][ l ] R |
Le temps écoulé en seconde. |
||
|
% [ p ][ l ] U |
Le temps processeur écoulé en mode utilisateur en seconde. |
||
|
% [ p ][ l ] S |
Le temps processeur écoulé en mode systÚme en seconde. |
||
|
%P |
Le pourcentage de temps processeur utilisé calculé avec (%U + %S) / %R. |
Le p facultatif est un chiffre indiquant la prĂ©cision , le nombre de chiffres aprĂšs la virgule. Une valeur de 0 conduit Ă affichage de nombres entiers. Trois chiffres au plus peuvent ĂȘtre affichĂ©s aprĂšs la virgule ; toute valeur supĂ©rieure Ă 3 sera modifiĂ©e en 3 . Si p nâest pas prĂ©cisĂ©, la valeur 3 est utilisĂ©e.
Le l facultatif indique un format plus long, incluant les minutes, de la forme MM m SS . DD s . La valeur de p détermine si la partie décimale est affichée ou non.
Si cette variable nâexiste pas, bash agit comme si elle avait la valeur $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS' . Si la valeur est NULL, aucune information de chronomĂ©trage nâest affichĂ©e. Un caractĂšre final de changement de ligne est ajoutĂ© quand la chaĂźne de format est affichĂ©e.
|
TMOUT |
Si configurĂ©e en valeur strictement positive, TMOUT est traitĂ©e comme le dĂ©lai par dĂ©faut pour la commande interne read . La commande select se termine sâil nây a pas de saisie au bout de TMOUT secondes lorsque lâentrĂ©e vient dâun terminal. Dans un interprĂ©teur interactif, la valeur est interprĂ©tĂ©e comme une durĂ©e en seconde Ă attendre une ligne de saisie aprĂšs avoir affichĂ© lâinvite de base. Bash se termine aprĂšs avoir attendu pendant ce temps en seconde si aucune saisie de ligne complĂšte nâest arrivĂ©e. |
||
|
TMPDIR |
Si existante, bash utilise sa valeur comme nom de rĂ©pertoire dans lequel bash crĂ©e les fichiers temporaires nĂ©cessaires au fonctionnement de lâinterprĂ©teur. |
auto_resume
Cette variable commande le comportement de lâinterprĂ©teur vis-Ă -vis de lâutilisateur et du contrĂŽle des tĂąches. Si cette variable existe, les commandes simples constituĂ©es dâun seul mot, sans redirection, sont considĂ©rĂ©es comme de possibles relances de tĂąches suspendues. Aucune ambiguĂŻtĂ© nâest possible, si plusieurs tĂąches commencent par la chaĂźne saisie, la tĂąche Ă laquelle il a Ă©tĂ© accĂ©dĂ© le plus rĂ©cemment est sĂ©lectionnĂ©e. Le nom dâune tĂąche suspendue, dans ce contexte, est la ligne de commande utilisĂ©e pour la lancer. Si configurĂ©e Ă la valeur exact , la chaĂźne fournie doit correspondre exactement au nom dâune tĂąche suspendue ; si configurĂ©e Ă substring , la chaĂźne fournie doit correspondre Ă une sous-chaĂźne du nom de la tĂąche suspendue. La valeur substring donne une fonctionnalitĂ© analogue Ă lâidentificateur de tĂąche %? (consultez CONTRĂLE DES TĂCHES ci-dessous). Si configurĂ©e Ă toute autre valeur, la chaĂźne fournie doit ĂȘtre le prĂ©fixe du nom dâune tĂąche suspendue ; cela fournit une fonctionnalitĂ© analogue Ă lâidentificateur de tĂąche % string .
histchars
Les deux ou trois caractĂšres commandant le dĂ©veloppement de lâhistorique et le dĂ©coupage en lexĂšmes (consultez DĂVELOPPEMENT DE LâHISTORIQUE ci-dessous). Le premier caractĂšre est le caractĂšre de dĂ©veloppement de lâhistorique , celui qui indique le dĂ©but dâun dĂ©veloppement dâhistorique (normalement « ! »). Le second caractĂšre est celui de substitution rapide , utilisĂ© comme raccourci pour relancer la commande prĂ©cĂ©dente, en modifiant une partie de la chaĂźne (par dĂ©faut « Ë Â»). Le troisiĂšme caractĂšre facultatif est celui qui indique, lorsquâon le trouve en dĂ©but de mot que le reste de la ligne est un commentaire (normalement « # »). Ce caractĂšre de commentaire empĂȘche le dĂ©veloppement de lâhistorique pour tous les mots restants sur la ligne. Il ne conduit pas nĂ©cessairement lâanalyseur de lâinterprĂ©teur Ă considĂ©rer le reste de la ligne comme un commentaire.
Tableaux
Bash fournit des variables de type tableau indicĂ© ou associatif, Ă une dimension. Toute variable peut ĂȘtre utilisĂ©e comme tableau indicé ; la commande interne declare peut servir Ă dĂ©clarer explicitement un tableau. Il nây a pas de limitation maximale Ă la taille dâun tableau, ni dâobligation Ă indicer les Ă©lĂ©ments ou les affecter de façon contiguĂ«. Les tableaux indicĂ©s sont consultĂ©s avec des entiers (Ă©valuations arithmĂ©tiques comprises) commençant Ă zĂ©ro ; les tableaux associatifs sont consultĂ©s avec des chaĂźnes arbitraires. Sauf mention contraire, les indices de tableaux indicĂ©s ne doivent pas ĂȘtre des entiers nĂ©gatifs.
Un tableau indicĂ© est créé automatiquement si une variable quelconque est affectĂ©e en utilisant la syntaxe nom [ indice ]= valeur . Lâ indice est traitĂ© comme une expression arithmĂ©tique et doit sâĂ©valuer en un nombre. declare -a nom permet de dĂ©clarer explicitement un tableau indicĂ© (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). declare -a nom [ indice ] est aussi accepté ; lâ indice est ignorĂ©.
Les tableaux associatifs sont créés en utilisant declare -A nom .
Des attributs peuvent ĂȘtre indiquĂ©s pour une variable tableau en utilisant les commandes internes declare et readonly . Les attributs sâappliquent Ă tous les Ă©lĂ©ments dâun tableau.
Les tableaux sont affectĂ©s en utilisant lâaffectation composĂ©e de la forme nom = ( valeur_1 ... valeur_n ) , oĂč chaque valeur peut ĂȘtre de la forme [ indice ]= chaĂźne . Les affectations de tableau indicĂ© ne nĂ©cessitent rien dâautre que chaĂźne . Chaque valeur de la liste est dĂ©veloppĂ©e en utilisant tous les dĂ©veloppements de lâinterprĂ©teur dĂ©crits ci-dessous dans DĂVELOPPEMENTS . Lors de lâaffectation de tableaux indicĂ©s, si les crochets et les indices facultatifs sont fournis, les affectations ont lieu en consĂ©quence ; sinon lâindice de lâĂ©lĂ©ment affectĂ© est le dernier indice affectĂ© plus un. Lâindexation commence Ă zĂ©ro.
Lors de lâaffectation Ă un tableau associatif, les mots dâune affectation composĂ©e peuvent ĂȘtre soit des affectations pour lesquelles un indice est requis, soit une liste de mots qui est interprĂ©tĂ©e comme une sĂ©quence alternant clĂ©s et valeurs : nom = ( clĂ©1 valeur1 clĂ©2 valeur2 ... ) . Elles sont traitĂ©es de la mĂȘme maniĂšre que nom = ( [ clĂ©1 ]= valeur1 [ clĂ©2 ]= valeur2 ... ) . Le premier mot de la liste dĂ©termine comment les autres mots sont interprĂ©tĂ©s ; toutes les affectations dâune liste doivent ĂȘtre du mĂȘme type. Lors de lâutilisation de paires clĂ©/valeur, les clĂ©s ne peuvent pas ĂȘtre absentes ou vides ; une valeur finale absente est traitĂ©e comme une chaĂźne vide.
Cette syntaxe est aussi acceptĂ©e par la commande interne declare . Les Ă©lĂ©ments individuels du tableau sont affectĂ©s en utilisant la syntaxe nom [ indice ]= valeur prĂ©sentĂ©e ci-dessus. Lors de lâaffectation vers un tableau indicĂ©, si nom est indicĂ© avec un nombre nĂ©gatif, ce nombre est considĂ©rĂ© comme ajoutĂ© Ă lâindice maximal de nom plus un, ainsi, un indice nĂ©gatif compte Ă rebours depuis la fin du tableau et un indice -1 fait rĂ©fĂ©rence au dernier Ă©lĂ©ment du tableau.
LâopĂ©rateur += ajoutera Ă une variable tableau lors dâune affectation en utilisant la syntaxe dâaffectation composĂ©e ; consultez PARAMĂTRES ci-dessous.
Tout Ă©lĂ©ment dâun tableau est accessible avec la notation ${ nom [ indice ]} . Les accolades sont nĂ©cessaires pour Ă©viter les conflits avec le dĂ©veloppement des chemins. Si indice est @ ou * , le mot se dĂ©veloppe en tous les Ă©lĂ©ments de nom . Ces deux indices ne diffĂšrent que lorsque le mot apparaĂźt entre guillemets doubles. Si le mot est entre guillemets doubles, ${ nom [*]} se dĂ©veloppe en un seul mot contenant les valeurs de chaque Ă©lĂ©ment du tableau sĂ©parĂ©es par le premier caractĂšre de la variable spĂ©ciale IFS et ${ nom [@]} dĂ©veloppe chaque Ă©lĂ©ment de nom en un mot distinct. Quand il nây a pas dâĂ©lĂ©ment dans le tableau, ${ nom [@]} ne se dĂ©veloppe en rien. Si le dĂ©veloppement entre guillemets doubles survient Ă lâintĂ©rieur dâun mot, le dĂ©veloppement du premier paramĂštre est accolĂ© Ă la premiĂšre partie du mot original et le dĂ©veloppement du dernier paramĂštre est accolĂ© Ă la derniĂšre partie du mot original. Le comportement est analogue Ă celui des paramĂštres spĂ©ciaux * et @ (consultez ParamĂštres spĂ©ciaux ci-dessus). ${# nom [ indice ]} sâĂ©value en longueur de lâĂ©lĂ©ment ${ nom [ indice ]} . Si lâ indice est * ou @ , il sâĂ©value en nombre dâĂ©lĂ©ments dans le tableau. Si lâ indice utilisĂ© pour rĂ©fĂ©rencer un Ă©lĂ©ment de tableau indicĂ© sâĂ©value en un nombre nĂ©gatif, il est considĂ©rĂ© comme ajoutĂ© Ă lâindice maximal du tableau plus un, ainsi, un indice nĂ©gatif compte Ă rebours depuis la fin du tableau et un indice -1 fait rĂ©fĂ©rence au dernier Ă©lĂ©ment du tableau.
Le rĂ©fĂ©rencement dâune variable tableau sans indice est Ă©quivalent au rĂ©fĂ©rencement dâun tableau avec un indice de 0 . Toute rĂ©fĂ©rence Ă une variable utilisant un indice valable est lĂ©gale et bash crĂ©era un tableau si nĂ©cessaire.
Une variable tableau est considérée configurée si une valeur a été affectée à un indice. La chaßne NULL est une valeur possible.
Les clefs (indices) dâun tableau peuvent ĂȘtre aussi bien obtenues que les valeurs. ${! nom [@]} et ${! nom [*]} se dĂ©veloppent en indices assignĂ©s dans la variable tableau nom . Le traitement entre guillemets doubles est similaire au dĂ©veloppement des paramĂštres spĂ©ciaux @ et * entre guillemets doubles.
La commande interne unset sert Ă dĂ©truire les tableaux. unset nom [ indice ] dĂ©truit lâĂ©lĂ©ment de tableau dâindice indice , pour Ă la fois les tableaux indicĂ©s et les tableaux associatifs. Les indices nĂ©gatifs des tableaux indicĂ©s sont traitĂ©s comme dĂ©crit prĂ©cĂ©demment. Supprimer le dernier Ă©lĂ©ment dâune variable tableau ne dĂ©truit pas la variable. unset nom , oĂč nom est un tableau, supprime le tableau entier. unset nom [ indice ], oĂč indice est un * ou un @ , se comporte diffĂ©remment selon que nom est un tableau indicĂ© ou associatif. Si nom est un tableau associatif, la commande dĂ©truit lâĂ©lĂ©ment avec un indice * ou @ . Si nom est un tableau indicĂ©, unset supprime tous les Ă©lĂ©ments mais ne supprime pas le tableau lui-mĂȘme.
Lors de lâutilisation dâun nom de variable avec un indice comme argument dâune commande comme avec unset , sans utiliser la syntaxe des dĂ©veloppements de mots dĂ©crite prĂ©cĂ©demment, lâargument est sujet au dĂ©veloppement de chemin. Si le dĂ©veloppement de chemin nâest pas souhaitĂ©, lâargument doit ĂȘtre protĂ©gĂ©.
Les commandes internes declare , local et readonly acceptent toutes une option -a pour prĂ©ciser un tableau indicĂ© et une option -A pour prĂ©ciser un tableau associatif. Si les deux options sont fournies, -A est prioritaire. La commande interne read accepte une option -a pour affecter une liste de mots lus depuis lâentrĂ©e standard dans un tableau. Les commandes internes set et declare affichent les valeurs dâun tableau dâune façon qui permet de les rĂ©utiliser pour des affectations.
DĂVELOPPEMENTS
Les développements sont appliqués à la ligne de commande aprÚs avoir été découpée en mots. Sept types de développements sont effectués : le développement des accolades , le développement du tilde , le développement des paramÚtres et des variables , la substitution de commande , le développement arithmétique , le découpage en mots et le développement des chemins .
Lâordre des dĂ©veloppements est : dĂ©veloppement des accolades ; dĂ©veloppement du tilde, des paramĂštres, des variables et arithmĂ©tique, et substitution de commande (effectuĂ©e de la gauche vers la droite) ; dĂ©coupage en mots ; et dĂ©veloppement des chemins.
Sur les systĂšmes qui le permettent, un dĂ©veloppement supplĂ©mentaire a lieu : la substitution de processus . Il est rĂ©alisĂ© en mĂȘme temps que le dĂ©veloppement du tilde, des paramĂštres, des variables et arithmĂ©tique, et que la substitution de commande.
AprĂšs la rĂ©alisation de ces dĂ©veloppements, les caractĂšres de protection prĂ©sents dans le mot original sont supprimĂ©s Ă moins quâils nâaient Ă©tĂ© protĂ©gĂ©s eux-mĂȘmes ( suppression des protections )
Seuls le dĂ©veloppement des accolades, le dĂ©coupage en mots et le dĂ©veloppement des chemins peuvent modifier le nombre de mots. Les autres dĂ©veloppements transforment un mot unique en un autre mot unique. La seule exception Ă cette rĂšgle est le dĂ©veloppement de « $@ » et « ${ nom [@]} », ainsi que, dans la plupart des cas, $* et ${ name [*]} comme expliquĂ© prĂ©cĂ©demment (consultez PARAMĂTRES ).
Développement des accolades
Le dĂ©veloppement des accolades est un mĂ©canisme permettant de produire des chaĂźnes quelconques. Il est similaire au dĂ©veloppement des chemins , mais les noms de fichiers produits nâexistent pas nĂ©cessairement. Les motifs qui seront dĂ©veloppĂ©s prennent la forme dâun prĂ©ambule facultatif, suivi soit par une sĂ©rie de chaĂźnes sĂ©parĂ©es par des virgules, soit par lâexpression dâune sĂ©rie entre accolades, et suivi par un post-scriptum facultatif. Le prĂ©ambule est insĂ©rĂ© devant chacune des chaĂźnes contenues entre les accolades et le post-scriptum est concatĂ©nĂ© Ă la fin de chacune des chaĂźnes rĂ©sultantes, le dĂ©veloppement se faisant de gauche Ă droite.
Plusieurs dĂ©veloppements dâaccolades peuvent ĂȘtre imbriquĂ©s. Les rĂ©sultats de chaque dĂ©veloppement ne sont pas triĂ©s, lâordre de gauche Ă droite est conservĂ©. Par exemple a { d,c,b } e se dĂ©veloppe en « ade ace abe ».
Une expression de sĂ©quence est de la forme { x .. y [.. incr ]} , oĂč x et y sont soit des entiers, soit des lettres uniques, et incr , un incrĂ©ment facultatif, est un entier. Lorsquâil sâagit dâentiers, lâexpression est remplacĂ©e par la liste des nombres entre x et y inclus. Les entiers fournis peuvent ĂȘtre prĂ©fixĂ©s par 0 pour forcer chaque terme Ă avoir la mĂȘme longueur. Si x ou y commencent par un zĂ©ro, lâinterprĂ©teur essaiera de forcer tous les termes créés Ă la mĂȘme longueur, en ajoutant des zĂ©ros au besoin. Sâil sâagit de lettres, lâexpression se dĂ©veloppe en lâensemble des caractĂšres situĂ©s entre x et y , inclus, dâun point de vue lexicographique en utilisant les paramĂštres rĂ©gionaux par dĂ©faut de C. Remarquez que x et y doivent ĂȘtre du mĂȘme type (entier ou lettre). Si lâincrĂ©ment est fourni, il est utilisĂ© comme diffĂ©rence entre chaque terme. LâincrĂ©ment par dĂ©faut est 1 ou -1 suivant les valeurs de x et y .
Le dĂ©veloppement des accolades est effectuĂ© avant tout autre dĂ©veloppement et tous les caractĂšres ayant une signification spĂ©ciale pour les autres dĂ©veloppements sont conservĂ©s dans le rĂ©sultat. Il sâagit dâune modification purement littĂ©rale. Bash nâeffectue aucune interprĂ©tation syntaxique du texte entre les accolades.
Un dĂ©veloppement dâaccolades correctement formĂ© doit contenir des accolades ouvrante et fermante non protĂ©gĂ©es et au moins une virgule non protĂ©gĂ©e ou une expression de sĂ©rie correcte. Tout dĂ©veloppement dâaccolades incorrectement formĂ© est laissĂ© inchangĂ©. Un { ou un , peuvent ĂȘtre protĂ©gĂ©s par une contre-oblique pour Ă©viter dâĂȘtre considĂ©rĂ©s comme partie dâune expression entre accolades. Pour Ă©viter tout conflit avec le dĂ©veloppement des paramĂštres, la chaĂźne ${ nâest pas considĂ©rĂ©e comme Ă©ligible au dĂ©veloppement des accolades, et empĂȘche le dĂ©veloppement dâaccolades jusquâau } fermant.
Cette construction est typiquement utilisée comme raccourci lorsque le préfixe commun aux chaßnes à engendrer est plus long que dans les exemples précédents :
mkdir /usr/local/src/bash/{old,new,dist,bugs}
ou
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
Le dĂ©veloppement des accolades induit une lĂ©gĂšre incompatibilitĂ© avec les versions historiques de sh . sh nâeffectue aucun traitement sur les accolades ouvrantes et fermantes lorsquâelles apparaissent dans un mot et les laisse inchangĂ©es. Bash supprime les accolades dans les mots, aprĂšs dĂ©veloppement. Par exemple, si le mot file{1,2} est fourni Ă sh , il reste inchangĂ© en sortie. En revanche, il est transformĂ© en file1 file2 par bash . Si une compatibilitĂ© stricte avec sh est nĂ©cessaire, lancez bash avec lâoption +B ou dĂ©sactivez le dĂ©veloppement des accolades avec lâoption +B de la commande set (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Développement du tilde
Si un mot commence par un caractĂšre tilde (« Ë Â») non protĂ©gĂ©, tous les caractĂšres prĂ©cĂ©dant la premiĂšre barre oblique non protĂ©gĂ©e (voire tous les caractĂšres sâil nây a pas de barre oblique non protĂ©gĂ©e), sont considĂ©rĂ©s comme un prĂ©fixe tilde . Si aucun caractĂšre du prĂ©fixe tilde nâest protĂ©gĂ©, les caractĂšres suivant le tilde sont traitĂ©s comme un identifiant de connexion possible. Si cet identifiant de connexion est la chaĂźne NULL, le tilde est remplacĂ© par la valeur du paramĂštre dâinterprĂ©teur HOME . Si HOME nâexiste pas, le rĂ©pertoire dâaccueil de lâutilisateur exĂ©cutant lâinterprĂ©teur est utilisĂ© Ă la place. Sinon le prĂ©fixe tilde est remplacĂ© par le rĂ©pertoire dâaccueil associĂ© Ă lâidentifiant de connexion indiquĂ©.
Si le prĂ©fixe tilde est « Ë+ », la valeur de la variable de lâinterprĂ©teur PWD le remplace. Si le prĂ©fixe tilde est « Ë- », la valeur de la variable de lâinterprĂ©teur OLDPWD , si existante, lui est substituĂ©e. Si les caractĂšres Ă la suite du tilde dans le prĂ©fixe tilde reprĂ©sentent un nombre N prĂ©fixĂ© facultativement par un « + » ou un « - » le prĂ©fixe tilde est remplacĂ© par lâĂ©lĂ©ment correspondant de la pile de rĂ©pertoires telle quâil serait affichĂ© par la commande interne dirs appelĂ©e avec le prĂ©fixe tilde en argument. Si les caractĂšres Ă la suite du tilde dans le prĂ©fixe tilde reprĂ©sentent un nombre sans un « + » ou « - » en tĂȘte, on suppose quâil sâagit de « + ».
Si lâidentifiant de connexion est incorrect ou si le dĂ©veloppement du tilde Ă©choue, le mot est inchangĂ©.
Chaque affectation de variable vĂ©rifie immĂ©diatement la prĂ©sence de prĂ©fixes tilde non protĂ©gĂ©s suivant un : ou le premier = . Dans ces cas, le dĂ©veloppement des tildes est aussi effectuĂ©. On peut donc utiliser des noms de fichiers avec des tildes dans des affectations de PATH , MAILPATH et CDPATH et lâinterprĂ©teur affectera la valeur dĂ©veloppĂ©e.
Bash effectue aussi le dĂ©veloppement des tildes sur les mots satisfaisant les conditions dâaffectations de variable (comme dĂ©crit prĂ©cĂ©demment dans PARAMĂTRES ) quand elles apparaissent comme arguments de commandes simples. Bash ne le fait pas en mode POSIX sauf pour les commandes de dĂ©claration listĂ©es ci-dessus.
Développement des paramÚtres
Le caractĂšre « $ » permet dâintroduire le dĂ©veloppement des paramĂštres, la substitution de commande ou le dĂ©veloppement arithmĂ©tique. Le nom du paramĂštre ou du symbole Ă dĂ©velopper peut ĂȘtre encadrĂ© par des accolades facultatives mais permettant dâĂ©viter le dĂ©veloppement de la variable Ă partir de caractĂšres la suivant immĂ©diatement et qui pourraient ĂȘtre considĂ©rĂ©s comme appartenant Ă son nom.
Lorsque les
accolades sont utilisĂ©es, lâaccolade de fin
correspondante est le premier caractĂšre
«
}
» ni protégé
par une contre-oblique, ni inclus dans une chaĂźne
protégée, un développement
arithmétique, une substitution de commande ou un
développement des paramÚtres.
${
paramĂštre
}
est remplacĂ© par la valeur du paramĂštre . Les accolades sont nĂ©cessaires quand le paramĂštre est un paramĂštre positionnel ayant plusieurs chiffres, ou si le paramĂštre est suivi de caractĂšres nâappartenant pas Ă son nom. Le paramĂštre est un paramĂštre dâinterprĂ©teur (comme dĂ©crit prĂ©cĂ©demment dans PARAMĂTRES ) ou une rĂ©fĂ©rence de tableau ( Tableaux ).
Si le premier caractĂšre du paramĂštre est un point dâexclamation ( ! ), et si le paramĂštre nâest pas un nameref , il introduit un niveau dâindirection de variable. Bash utilise la valeur formĂ©e par le dĂ©veloppement du reste du paramĂštre en tant que nouveau paramĂštre . Cette variable est alors dĂ©veloppĂ©e et la valeur utilisĂ©e pour le reste du dĂ©veloppement plutĂŽt que le dĂ©veloppement du paramĂštre original. On appelle ce mĂ©canisme le dĂ©veloppement indirect . La valeur est sujette au dĂ©veloppement de tildes et de paramĂštres, Ă la substitution de commande ou au dĂ©veloppement arithmĂ©tique. Si le paramĂštre est un nameref , le dĂ©veloppement porte sur le nom du paramĂštre rĂ©fĂ©rencĂ© par le paramĂštre plutĂŽt que sur le dĂ©veloppement indirecte complet. Les exceptions Ă cela sont les dĂ©veloppements de ${! prĂ©fixe *} et de ${! nom [ @ ]} dĂ©crits ci-dessous. Le point dâexclamation doit immĂ©diatement suivre lâaccolade ouvrante afin dâintroduire lâindirection.
Dans chacun des cas ci-dessous, le mot est soumis au développement de tilde, au développement des paramÚtres, à la substitution de commande et au développement arithmétique.
Quand il
nâeffectue pas de dĂ©veloppement de
sous-chaĂźne, en utilisant les formes
documentées ci-dessous (par exemple
:-
),
bash
teste si le paramĂštre est inexistant ou
NULL. Lâabsence de deux-points induit un test sur la
seule inexistence du paramĂštre.
${
paramĂštre
:-
mot
}
Utilisation de valeur par dĂ©faut . Si le paramĂštre est inexistant ou NULL, le dĂ©veloppement du mot est substituĂ©. Sinon, câest la valeur du paramĂštre qui est substituĂ©e.
${ paramĂštre := mot }
Affectation de valeur par dĂ©faut . Si le paramĂštre est inexistant ou NULL, le dĂ©veloppement du mot lui est affectĂ©. La valeur du paramĂštre est alors substituĂ©. Les paramĂštres positionnels et spĂ©ciaux ne peuvent pas ĂȘtre affectĂ©s de cette façon.
${ paramĂštre :? mot }
Affichage dâerreur si NULL ou inexistant . Si le paramĂštre est inexistant ou NULL, le dĂ©veloppement du mot (ou un message appropriĂ© si aucun mot nâest fourni) est affichĂ© sur la sortie dâerreur standard et lâinterprĂ©teur termine, sâil nâest pas interactif. Sinon, la valeur du paramĂštre est substituĂ©e.
${ paramĂštre :+ mot }
Utilisation de valeur alternative . Si le paramĂštre est NULL ou inexistant, rien nâest substituĂ©. Sinon le dĂ©veloppement du mot est substituĂ©.
${
paramĂštre
:
début
}
${
paramĂštre
:
début
:
longueur
}
DĂ©veloppement des sous-chaĂźnes . Se dĂ©veloppe pour fournir la sous-chaĂźne de longueur indiquĂ©e (en caractĂšre) commençant au dĂ©but . Si le paramĂštre est @ ou * , un tableau indicĂ© par @ ou * , ou un nom de tableau associatif, le rĂ©sultat diffĂšre comme dĂ©crit ci-dessous. Si la longueur est omise, fournit la sous-chaĂźne commençant au caractĂšre indiquĂ© par dĂ©but et sâĂ©tendant jusquâĂ la fin de la valeur. La longueur et le dĂ©but sont des expressions arithmĂ©tiques (consultez ĂVALUATION ARITHMĂTIQUE ci-dessous).
Si le dĂ©but est nĂ©gatif, sa valeur est considĂ©rĂ©e Ă partir de la fin du contenu du paramĂštre . Si longueur est nĂ©gatif, sa valeur est considĂ©rĂ©e comme une position en caractĂšre Ă partir de la fin de la valeur du paramĂštre plutĂŽt que comme un nombre de caractĂšres, et le dĂ©veloppement est constituĂ© des caractĂšres entre le dĂ©but et cette position. Remarquez que les positions nĂ©gatives doivent ĂȘtre sĂ©parĂ©es des deux-points par au moins une espace pour Ă©viter dâĂȘtre confondues avec le dĂ©veloppement de :- .
Si le paramĂštre est @ ou * , le rĂ©sultat correspond Ă longueur paramĂštres positionnels commençant au dĂ©but . Une valeur nĂ©gative de dĂ©but est considĂ©rĂ©e relative au plus grand paramĂštre positionnel plus un (ainsi un indice -1 fait rĂ©fĂ©rence au dernier paramĂštre positionnel). Câest une erreur de dĂ©veloppement si longueur est Ă©valuĂ©e en nombre nĂ©gatif.
Si le paramĂštre est un nom de tableau indicĂ© par @ ou * , le rĂ©sultat est les longueur Ă©lĂ©ments du tableau commençant Ă ${ paramĂštre [ dĂ©but ]} . Une valeur nĂ©gative de dĂ©but est prise relativement Ă la valeur maximale de lâindice du tableau considĂ©rĂ© plus un. Câest une erreur de dĂ©veloppement si longueur est Ă©valuĂ©e en nombre nĂ©gatif.
Le développement de sous-chaßne appliqué à un tableau associatif produit des résultats non définis.
Lâindexation des sous-chaĂźnes commence Ă zĂ©ro, sauf pour les paramĂštres positionnels pour lesquels lâindexation commence Ă 1 par dĂ©faut. Si dĂ©but est 0 , et que les paramĂštres positionnels sont utilisĂ©s, la liste est prĂ©fixĂ©e par $0 .
${!
préfixe
*}
${!
préfixe
@}
Noms correspondant au préfixe . Se développe en noms des variables dont les noms commencent par préfixe , séparés par le premier caractÚre de la variable spéciale IFS . Si @ est utilisé et que le développement apparaßt entre guillemets doubles, chaque nom de variable se développe séparément.
${!
nom
[
@
]}
${!
nom
[
*
]}
Liste des clefs du tableau . Si nom est une variable de type tableau, elle se dĂ©veloppe en liste des indices (clefs) du tableau affectĂ© Ă nom . Si nom nâest pas un tableau, se dĂ©veloppe en 0 si nom existe et en NULL sinon. Quand @ est utilisĂ© et que le dĂ©veloppement apparaĂźt entre guillemets doubles, chaque clef se dĂ©veloppe en un mot sĂ©parĂ©.
${# paramĂštre }
Longueur du paramĂštre . Est remplacĂ© par la longueur, en caractĂšres, de la valeur du paramĂštre . Si le paramĂštre est * ou @ , la valeur est le nombre de paramĂštres positionnels. Si le paramĂštre est un nom de tableau indicĂ© par * ou @ , la valeur donnĂ©e est le nombre dâĂ©lĂ©ments du tableau. Si le paramĂštre est un nom de tableau indicĂ© par un nombre nĂ©gatif, ce nombre est considĂ©rĂ© comme ajoutĂ© Ă lâindice maximal de paramĂštre plus un (ainsi un indice nĂ©gatif compte Ă rebours depuis la fin du tableau et un indice -1 fait rĂ©fĂ©rence au dernier Ă©lĂ©ment).
${
paramĂštre
#
mot
}
${
paramĂštre
##
mot
}
Retrait du motif correspondant au prĂ©fixe . Le mot est dĂ©veloppĂ© pour fournir un motif, comme dans le dĂ©veloppement des chemins et mis en correspondance avec la valeur dĂ©veloppĂ©e du paramĂštre avec les rĂšgles dĂ©crites dans Motifs gĂ©nĂ©riques ci-dessous. Si le motif correspond au dĂ©but de la valeur du paramĂštre , alors le dĂ©veloppement prend la valeur dĂ©veloppĂ©e du paramĂštre aprĂšs suppression du plus court (cas « # ») ou du plus long (cas « ## ») motif correspondant. Si le paramĂštre est @ ou * , lâopĂ©ration de suppression de motif est appliquĂ©e Ă chaque paramĂštre positionnel tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante. Si le paramĂštre est une variable tableau indicĂ©e par @ ou * , lâopĂ©ration de suppression de motif est appliquĂ©e Ă chaque Ă©lĂ©ment du tableau tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante.
${
paramĂštre
%
mot
}
${
paramĂštre
%%
mot
}
Retrait du motif correspondant au suffixe . Le mot est dĂ©veloppĂ© pour fournir un motif, comme dans le dĂ©veloppement des chemins et mis en correspondance avec la valeur dĂ©veloppĂ©e du paramĂštre avec les rĂšgles dĂ©crites dans Motifs gĂ©nĂ©riques ci-dessous. Si le motif correspond Ă une portion finale de la valeur dĂ©veloppĂ©e du paramĂštre , alors le dĂ©veloppement prend la valeur dĂ©veloppĂ©e du paramĂštre aprĂšs suppression du plus court (cas « % ») ou du plus long (cas « %% ») motif correspondant. Si le paramĂštre est @ ou * , lâopĂ©ration de suppression de motif est appliquĂ©e Ă chaque paramĂštre positionnel tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante. Si le paramĂštre est une variable tableau indicĂ©e par @ ou * , lâopĂ©ration de suppression de motif est appliquĂ©e Ă chaque Ă©lĂ©ment du tableau tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante.
${
paramĂštre
/
motif
/
chaĂźne
}
${
paramĂštre
//
motif
/
chaĂźne
}
${
paramĂštre
/#
motif
/
chaĂźne
}
${
paramĂštre
/%
motif
/
chaĂźne
}
Substitution de motif . Le motif est dĂ©veloppĂ© produire un motif comme dans le dĂ©veloppement des chemins. Le paramĂštre est dĂ©veloppĂ© et la plus longue portion correspondant au motif est remplacĂ©e par la chaĂźne . La chaĂźne est sujette au dĂ©veloppement du tilde, des paramĂštres et des variables, au dĂ©veloppement arithmĂ©tique, Ă la substitution de commande et de processus, et Ă la suppression des protections. La mise en correspondance est rĂ©alisĂ©e en utilisant les rĂšgles dĂ©crites dans Motifs gĂ©nĂ©riques ci-dessous. Dans la premiĂšre forme ci-dessus, seule la premiĂšre correspondance est remplacĂ©e. Sâil y a deux barres obliques sĂ©parant le paramĂštre et le motif , (la seconde forme ci-dessus) toutes les correspondances au motif sont remplacĂ©es par la chaĂźne . Si le motif est prĂ©cĂ©dĂ© par # (la troisiĂšme forme ci-dessus), il doit correspondre au dĂ©but de la valeur dĂ©veloppĂ©e du paramĂštre . Si le motif est prĂ©cĂ©dĂ© par % (la quatriĂšme forme ci-dessus), il doit correspondre Ă la fin de la valeur du dĂ©veloppement du paramĂštre . Si la chaĂźne est NULL, les portions correspondant au motif sont supprimĂ©es et le / suivant le motif peut ĂȘtre omis.
Si lâoption dâinterprĂ©teur patsub_replacement est activĂ©e en utilisant shopt , toutes les instances non protĂ©gĂ©es de & dans la chaĂźne sont remplacĂ©es par la partie correspondante du motif .
La protection dâune partie de la chaĂźne empĂȘche les remplacements dans le dĂ©veloppement de la partie protĂ©gĂ©e, y compris le remplacement des chaĂźnes stockĂ©es dans les variables de lâinterprĂ©teur. La contre-oblique protĂ©gera & dans la chaĂźne ; la contre-oblique est supprimĂ©e afin de permettre un & littĂ©ral dans la chaĂźne de remplacement. La contre-oblique peut aussi ĂȘtre utilisĂ©e pour protĂ©ger une contre-oblique ; \\ rĂ©sulte en une contre-oblique littĂ©rale dans le remplacement. Les utilisateurs doivent faire attention si la chaĂźne est protĂ©gĂ©e entre des guillemets doubles pour Ă©viter des interactions non souhaitĂ©es entre la contre-oblique et les guillemets doubles, dans la mesure oĂč la contre-oblique a une signification particuliĂšre avec des guillemets doubles. La substitution de motif rĂ©alise la vĂ©rification de la prĂ©sence de & non protĂ©gĂ©e aprĂšs le dĂ©veloppement de chaĂźne ; les dĂ©veloppeurs de programmes dâinterprĂ©teur doivent protĂ©ger toutes les occurrences de & quâils souhaitent ĂȘtre traitĂ©es littĂ©ralement dans le remplacement et sâassurer que toutes les instances de & quâils souhaitent voir remplacĂ©es ne soient pas protĂ©gĂ©es.
Si lâoption dâinterprĂ©teur nocasematch est activĂ©e, la mise en correspondance est rĂ©alisĂ©e sans tenir compte de la casse des caractĂšres alphabĂ©tiques. Si le paramĂštre est @ ou * , la substitution est appliquĂ©e Ă chaque paramĂštre positionnel tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante. Si le paramĂštre est une variable tableau indicĂ©e par @ ou * , lâopĂ©ration de substitution est appliquĂ©e Ă chaque Ă©lĂ©ment du tableau tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante.
${
paramĂštre
Ë
motif
}
${
paramĂštre
ËË
motif
}
${
paramĂštre
,
motif
}
${
paramĂštre
,,
motif
}
Modification de la casse . Ce dĂ©veloppement modifie la casse des caractĂšres alphabĂ©tiques du paramĂštre . Le motif est dĂ©veloppĂ© pour fournir un motif, comme dans le dĂ©veloppement des chemins. Chaque caractĂšre de la valeur dĂ©veloppĂ©e du paramĂštre est testĂ© par rapport au motif et, en cas de correspondance, sa casse est convertie. Le motif ne devrait pas essayer de correspondre Ă plus dâun caractĂšre. LâopĂ©rateur Ë convertit les lettre minuscules correspondant Ă ce motif en majuscules ; lâopĂ©rateur , convertit les lettre majuscules correspondant Ă ce motif en minuscules. Les dĂ©veloppements ËË et ,, convertissent tous les caractĂšres correspondant Ă leur valeur dĂ©veloppĂ©e ; les dĂ©veloppements Ë et , convertissent seulement le premier caractĂšre de la valeur dĂ©veloppĂ©e correspondant. Si motif est omis, il est traitĂ© comme un ? , ce qui correspond Ă nâimporte quel caractĂšre. Si le paramĂštre est @ ou * , la modification de casse sâapplique Ă chaque paramĂštre positionnel tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante. Si le paramĂštre est une variable tableau indicĂ©e par @ ou * , la modification de casse sâapplique Ă chaque Ă©lĂ©ment du tableau tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante.
${ paramÚtre @ opérateur }
Transformation de paramĂštre . Le dĂ©veloppement est soit une transformation de la valeur du paramĂštre ou des informations sur paramĂštre lui-mĂȘme, selon la valeur de opĂ©rateur . Chaque opĂ©rateur est une lettre unique :
|
U |
Le dĂ©veloppement est une chaĂźne qui est la valeur de lâ argument avec des caractĂšres alphabĂ©tiques en minuscule convertis en majuscule. |
||
|
u |
Le dĂ©veloppement est une chaĂźne qui est la valeur de lâ argument avec son premier caractĂšre converti en majuscule, si câest un caractĂšre alphabĂ©tique. |
||
|
L |
Le dĂ©veloppement est une chaĂźne qui est la valeur de lâ argument avec les caractĂšres alphabĂ©tiques en majuscule convertis en minuscule. |
||
|
Q |
Le dĂ©veloppement est une chaĂźne qui est la valeur de lâ argument protĂ©gĂ©e dans un format rĂ©utilisable en entrĂ©e de lâinterprĂ©teur. |
||
|
E |
Le développement est une chaßne qui est la valeur du paramÚtre avec des suites de caractÚres de protection par contre-oblique développée comme avec le mécanisme de protection $'...' . |
||
|
P |
Le dĂ©veloppement est une chaĂźne qui est le rĂ©sultat du dĂ©veloppement de lavaleur du paramĂštre comme sâil sâagissait dâune chaĂźne dâinvite (consultez INVITES ci-dessous). |
||
|
A |
Le dĂ©veloppement est une chaĂźne sous la forme dâune affectation ou dâune commande declare qui, lorsquâelle est Ă©valuĂ©e, recrĂ©era paramĂštre avec sa valeur et ses attributs. |
||
|
K |
Produit une version potentiellement protĂ©gĂ©e de la valeur de lâ argument , sauf quâil affiche les valeurs des tableaux indicĂ©s et associatifs comme une sĂ©quence de paires clĂ©/valeur protĂ©gĂ©es (consultez Tableaux ci-dessus). |
||
|
a |
Le dĂ©veloppement est une chaĂźne consistant en valeurs dâindicateur reprĂ©sentant les attributs de paramĂštre. |
||
|
k |
Comme la transformation K, mais développe les clés et les valeurs des tableaux indicés et associatifs pour séparer les mots aprÚs le découpage en mots. |
Si le paramĂštre est @ ou * , lâopĂ©ration est appliquĂ©e Ă chaque paramĂštre positionnel tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante. Si le paramĂštre est une variable tableau indicĂ©e par @ ou * , lâopĂ©ration est appliquĂ©e Ă chaque Ă©lĂ©ment du tableau tour Ă tour et le dĂ©veloppement est la liste rĂ©sultante.
Le résultat du développement est sujet au découpage en mots et au développement des chemins comme décrit ci-dessous.
Substitution de commande
La substitution de commande permet de remplacer le nom dâune commande par son rĂ©sultat. Il en existe deux formes :
$( commande )
ou
` commande `
Bash effectue le dĂ©veloppement en exĂ©cutant la commande dans un environnement de sous-interprĂ©teur et en remplaçant la substitution de commande par sa sortie standard dont les Ă©ventuels sauts de lignes finaux sont supprimĂ©s. Les changements de ligne internes ne sont pas supprimĂ©s mais peuvent disparaĂźtre lors du dĂ©coupage en mots. La substitution de commande $(cat fichier ) peut ĂȘtre remplacĂ©e par lâĂ©quivalent plus rapide $(< fichier ) .
Quand lâancienne forme de substitution avec les accents graves « ` » est utilisĂ©e, le caractĂšre contre-oblique garde sa signification propre sauf lorsquâil est suivi de $ , ` ou \ . Le premier accent grave non protĂ©gĂ© par une contre-oblique termine la substitution de commande. Quand on utilise la forme $( commande ), tous les caractĂšres entre parenthĂšses constituent la commande ; aucun nâest traitĂ© spĂ©cifiquement.
Les substitutions de commande peuvent ĂȘtre imbriquĂ©es. Pour imbriquer en utilisant la forme Ă accents graves, il faut protĂ©ger les accents graves internes avec des contre-obliques.
Si la substitution apparaßt entre guillemets doubles, le découpage en mots et le développement des chemins ne sont pas effectués sur ses résultats.
Développement arithmétique
Le développement arithmétique permet de remplacer une expression arithmétique par le résultat de son évaluation. Le format du développement arithmétique est :
$(( expression ))
Lâancien format $[ expression ] est obsolĂšte et sera supprimĂ© dans les prochaines versions de bash.
Lâ expression est traitĂ©e comme si elle Ă©tait entre guillemets doubles, mais des caractĂšres guillemet double dans lâexpression ne sont pas traitĂ©s spĂ©cifiquement et sont supprimĂ©s. Tous les lexĂšmes dans lâexpression sont sujets au dĂ©veloppement des paramĂštres et des variables, Ă la substitution de commande et Ă la suppression des protections. Le rĂ©sultat est traitĂ© comme lâexpression arithmĂ©tique Ă Ă©valuer. Les dĂ©veloppements arithmĂ©tiques peuvent ĂȘtre imbriquĂ©s.
LâĂ©valuation est effectuĂ©e en suivant les rĂšgles dĂ©crites ci-dessous dans ĂVALUATION ARITHMĂTIQUE . Si lâ expression est incorrecte, bash affiche un message indiquant lâĂ©chec et aucune substitution nâa lieu.
Substitution de processus
La substitution de processus permet Ă une entrĂ©e ou une sortie dâun processus dâĂȘtre rĂ©fĂ©rencĂ©e en utilisant un nom de fichier. Elle prend la forme <( liste ) ou >( liste ) . La liste de processus est exĂ©cutĂ©e de façon asynchrone est son entrĂ©e ou sortie apparaĂźt comme un nom de fichier. Le nom de ce fichier est passĂ© en argument Ă la commande actuelle comme rĂ©sultat de ce dĂ©veloppement. Si on utilise la forme >( liste ) , le fichier passĂ© en argument devra ĂȘtre lu pour obtenir la sortie de la liste . La substitution de processus est prise en charge sur les systĂšmes acceptant le mĂ©canisme des tubes nommĂ©s ( FIFO ) ou la mĂ©thode /dev/fd de nommage de fichiers ouverts.
Sur les systÚmes qui le permettent, la substitution de processus est effectuée simultanément au développement des paramÚtres et variables, à la substitution de commande et au développement arithmétique.
Découpage en mots
Les rĂ©sultats du dĂ©veloppement des paramĂštres, de la substitution de commande et du dĂ©veloppement arithmĂ©tique qui ne se trouvent pas entre guillemets doubles sont analysĂ©s par lâinterprĂ©teur afin dâappliquer le dĂ©coupage en mots .
LâinterprĂ©teur considĂšre chaque caractĂšre du paramĂštre IFS comme un dĂ©limiteur et dĂ©coupe le rĂ©sultat des autres dĂ©veloppements en mots utilisant ces caractĂšres comme terminaisons de champ. Si IFS est inexistante ou si sa valeur est exactement <espace><tab><changement_de_ligne> , la valeur par dĂ©faut, alors les suites de caractĂšres <espace> , <tab> et <changement_de_ligne> au dĂ©but ou Ă la fin du rĂ©sultat des dĂ©veloppements prĂ©cĂ©dents sont ignorĂ©s, et toute suite de caractĂšres de IFS ni au dĂ©but ni Ă la fin sert Ă dĂ©limiter les mots. Si IFS a une valeur autre que celle par dĂ©faut, alors les suites de caractĂšres blancs espace et tabulation et changement_de_ligne sont ignorĂ©es en dĂ©but et fin de mot, Ă condition que ces caractĂšres blancs se trouvent dans la valeur de IFS (un caractĂšre blanc de IFS ). Tout caractĂšre de IFS qui nâest pas un caractĂšre blanc, se trouvant Ă cĂŽtĂ© dâun caractĂšre blanc de IFS , dĂ©limite un champ. Une suite de caractĂšres blancs de IFS est Ă©galement traitĂ©e comme un dĂ©limiteur. Si la valeur de IFS est NULL, aucun dĂ©coupage en mots nâa lieu.
Les arguments NULL explicites ( "" ou '' ) sont conservĂ©s et passĂ©s Ă des commandes comme chaĂźnes vides. Les arguments NULL implicites non protĂ©gĂ©s, rĂ©sultant du dĂ©veloppement des paramĂštres qui nâont pas de valeurs, sont supprimĂ©s. Si un paramĂštre sans valeur est dĂ©veloppĂ© entre guillemets doubles, le rĂ©sultat est un argument NULL qui est conservĂ© et passĂ© Ă une commande comme une chaĂźne vide. Quand un argument NULL protĂ©gĂ© apparaĂźt comme appartenant Ă un mot dont lâexpansion nâest pas NULL, lâargument NULL est supprimĂ©. Câest-Ă -dire que le mot -d'' devient -d aprĂšs le dĂ©coupage en mots et le retrait de lâargument NULL.
Remarquez que si aucun dĂ©veloppement nâa lieu, le dĂ©coupage en mots nâest pas effectuĂ©.
Développement des chemins
AprĂšs le dĂ©coupage en mots, Ă moins que lâoption -f soit prĂ©sente, bash recherche dans chaque mot les caractĂšres * , ? et [ . Si lâun dâeux apparaĂźt et nâest pas protĂ©gĂ©, le mot est considĂ©rĂ© comme un motif et remplacĂ© par une liste, classĂ©e par ordre alphabĂ©tique, de noms de fichiers correspondant Ă ce motif (consultez Motifs gĂ©nĂ©riques ci-dessous). Si aucun nom de fichier ne correspond et si lâoption dâinterprĂ©teur nullglob nâest pas activĂ©e, le mot reste inchangĂ©. Si lâoption nullglob existe et si aucune correspondance nâest trouvĂ©e, le mot est supprimĂ©. Si lâoption dâinterprĂ©teur failglob existe et si aucune correspondance nâest trouvĂ©e, un message dâerreur est affichĂ© et la commande nâest pas exĂ©cutĂ©e. Si lâoption dâinterprĂ©teur nocaseglob est activĂ©e, la correspondance est effectuĂ©e sans tenir compte de la casse des caractĂšres alphabĂ©tiques. Remarquez que lorsque des expressions dâintervalle comme [a-z] (voir ci-dessous) sont utilisĂ©es, les lettres de lâautre casse peuvent ĂȘtre incluses, selon le paramĂ©trage de LC_COLLATE . Quand un motif est utilisĂ© pour le dĂ©veloppement des chemins, le caractĂšre « . » au dĂ©but dâun nom ou immĂ©diatement Ă la suite dâune barre oblique doit ĂȘtre explicitement mis en correspondance, Ă moins que lâoption dâinterprĂ©teur dotglob nâexiste. Pour ĂȘtre mis en correspondance avec les noms de fichier « . » et « .. », le motif doit dĂ©buter par un « . (par exemple, « .? »), mĂȘme si lâoption dotglob existe. Si lâoption dâinterprĂ©teur globskipdots est activĂ©e, les noms de fichier « . » et « .. » ne sont jamais mis en correspondance, mĂȘme si le motif dĂ©bute par un « . . Quand il ne sâagit pas de correspondance avec des chemins, le caractĂšre « . » nâest pas traitĂ© spĂ©cifiquement. Lors de la correspondance avec un chemin, le caractĂšre barre oblique doit toujours ĂȘtre mis en correspondance explicitement par une barre oblique dans le motif, mais dans les autres contextes de correspondance, il peut ĂȘtre mis en correspondance par un caractĂšre de motif spĂ©cial comme dĂ©crit ci-dessous dans Motifs gĂ©nĂ©riques . Voyez la description de la commande shopt dans COMMANDES INTERNES DE LâINTERPRĂTEUR pour une description des options dâinterprĂ©teur nocaseglob , nullglob , globskipdots , failglob et dotglob .
La variable de lâinterprĂ©teur GLOBIGNORE peut servir Ă restreindre lâensemble des noms de fichiers correspondant Ă un motif . Si GLOBIGNORE existe, chaque nom de fichier qui correspond aussi Ă un motif de GLOBIGNORE est supprimĂ© de la liste des correspondances. Si lâoption nocaseglob existe, la mise en correspondance avec les motifs dans GLOBIGNORE est rĂ©alisĂ©e sans tenir compte de la casse. Les noms de fichiers « . » et « .. » sont toujours ignorĂ©s quand GLOBIGNORE existe et nâest pas NULL. Toutefois, configurer GLOBIGNORE avec une valeur non NULL a pour effet dâactiver lâoption dâinterprĂ©teur dotglob , ainsi tous les autres noms de fichiers commençant par « . » correspondront. Pour obtenir lâancien comportement ignorant les noms commençant par « . », placez « .* » dans lâun des motifs de GLOBIGNORE . Lâoption dotglob est dĂ©sactivĂ©e si la variable GLOBIGNORE est inexistante. La correspondances de motifs respecte la configuration de lâoption dâinterprĂ©teur extglob .
Motifs génériques
Tout caractĂšre apparaissant dans un motif, hormis les caractĂšres spĂ©ciaux dĂ©crits ci-dessous, correspond Ă lui-mĂȘme. Le caractĂšre NUL ne peut pas se trouver dans un motif. Une contre-oblique protĂšge le caractĂšre qui la suit ; la contre-oblique de protection est supprimĂ©e lors de la recherche de correspondance. Les caractĂšres spĂ©ciaux de motifs doivent ĂȘtre protĂ©gĂ©s sâils sont destinĂ©s Ă une correspondance littĂ©rale.
Les caractÚres spéciaux ont les significations suivantes :
|
* |
Correspond Ă nâimporte quelle chaĂźne, y compris la chaĂźne NULL. Si lâoption globstar de lâinterprĂ©teur est activĂ©e, et que * est utilisĂ© dans un contexte de dĂ©veloppement des chemins, deux * adjacents sont utilisĂ©s pour un seul motif correspondant Ă tous les fichiers et zĂ©ro ou plus de rĂ©pertoires et sous-rĂ©pertoires. Lorsquâil sont suivis de / , deux * adjacents correspondront seulement aux rĂ©pertoires et sous-rĂ©pertoires. |
||
|
? |
Correspond Ă nâimporte quel caractĂšre. |
||
|
[...] |
Correspond Ă tout caractĂšre entre les crochets. Un couple de caractĂšres sĂ©parĂ©s par un trait dâunion indique une expression dâintervalle ; tout caractĂšre qui correspond Ă nâimporte quel caractĂšre situĂ© entre les deux bornes incluses, en utilisant les suites de collations et le jeu de caractĂšres des paramĂštres linguistiques rĂ©gionaux actuels, est capturĂ©. Si le premier caractĂšre suivant le [ est un ! ou un Ë alors la correspondance se fait sur tous les caractĂšres hors intervalle. Lâordre de tri des caractĂšres dans les expressions dâintervalle et les caractĂšres inclus dans lâintervalle sont dĂ©terminĂ©s par les paramĂštres linguistiques rĂ©gionaux actuels et par les valeurs des variables de lâinterprĂ©teur LC_COLLATE et LC_ALL si existantes. Pour obtenir lâinterprĂ©tation traditionnelle des expressions dâintervalle, oĂč [a-d] est Ă©quivalent Ă [abcd] , configurez la valeur de la variable dâinterprĂ©teur LC_ALL Ă C ou activez lâoption dâinterprĂ©teur globasciiranges . Un - peut faire partie du motif de correspondance Ă condition dâĂȘtre le premier ou le dernier caractĂšre de lâensemble. Un ] peut faire partie du motif de correspondance Ă condition dâĂȘtre le premier caractĂšre de lâensemble. |
Entre
[
et
]
, on peut indiquer une
classe de
caractĂšre
en utilisant la syntaxe
[:
classe
:]
, oĂč
classe
est
lâune des classes suivantes, dĂ©finies dans la
norme POSIXÂ :
alnum alpha ascii blank cntrl digit graph lower print punct
space upper word xdigit
Une classe correspond Ă nâimporte quel
caractĂšre qui sây trouve. La classe de
caractĂšres
word
correspond aux lettres, aux
chiffres et au caractÚre souligné
« _ ».
Entre [ et ] , on peut indiquer une classe dâĂ©quivalence en utilisant la syntaxe [= c =] qui correspond Ă nâimporte quel caractĂšre ayant le mĂȘme poids de collation (comme indiquĂ© par les paramĂštres linguistiques rĂ©gionaux actuels) que le caractĂšre c .
Entre [ et ] , la syntaxe [. symbole .] correspond au symbole de collation symbole .
Si lâoption extglob dâinterprĂ©teur est activĂ©e par la commande interne shopt lâinterprĂ©teur reconnaĂźt plusieurs opĂ©rateurs de correspondance Ă©tendue. Dans la description suivante, une liste-motif est une liste dâun ou plusieurs motifs sĂ©parĂ©s par des | . Les motifs composĂ©s sont formĂ©s en utilisant un ou plusieurs sous-motifs comme suit :
?( liste-motif )
Correspond à zéro ou une occurrence des motifs indiqués.
*( liste-motif )
Correspond à zéro ou plusieurs occurrences des motifs indiqués.
+( liste-motif )
Correspond à une ou plusieurs occurrences des motifs indiqués.
@( liste-motif )
Correspond à une occurrence exactement des motifs indiqués.
!( liste-motif )
Correspond Ă tout sauf lâun des motifs indiquĂ©s.
Lâoption extglob dâinterprĂ©teur modifie le comportement de lâanalyseur dans la mesure oĂč les parenthĂšses sont normalement traitĂ©es comme des opĂ©rateurs avec une signification syntaxique. Pour ĂȘtre sĂ»r que les motifs dĂ©veloppĂ©s mis en correspondance sont analysĂ©s correctement, il faut sâassurer que extglob est activĂ© avant dâanalyser les constructions contenant les motifs, y compris les fonctions de lâinterprĂ©teur et les substitutions de commande.
Lors de la correspondance avec des noms de fichier, lâoption de lâinterprĂ©teur dotglob dĂ©termine lâensemble de noms de fichiers Ă tester : quand dotglob est activĂ©, lâensemble de noms de fichier inclut tous les fichiers commençant par « . », mais « . » et « .. » doivent ĂȘtre mis en correspondance avec un motif ou un sous-motif qui commence par un point ; quand dotglob est dĂ©sactivĂ©, lâensemble ne comprend pas tous les fichiers commençant par « . », Ă moins que le motif ou le sous-motif dĂ©bute par un « . ». Comme prĂ©cĂ©demment, « . » tout seul a une signification particuliĂšre lors de la correspondance avec des noms de fichiers.
La mise en correspondance de motifs Ă©tendus complexes avec de longues chaĂźnes est lente surtout quand les motifs contiennent des alternances et les chaĂźnes contiennent plusieurs correspondances. Lâutilisation de correspondances sĂ©parĂ©es avec des chaĂźnes plus courtes ou en utilisant des tableaux de chaĂźnes Ă la place dâune longue chaĂźne unique peut ĂȘtre plus court.
Suppression des protections
AprĂšs les dĂ©veloppements prĂ©cĂ©dents, toutes les occurrences non protĂ©gĂ©es des caractĂšres \ , ' et " qui ne rĂ©sultent pas dâun des dĂ©veloppements ci-dessus sont supprimĂ©es.
REDIRECTIONS
Avant quâune commande ne soit exĂ©cutĂ©e, il est possible de rediriger son entrĂ©e ou sa sortie en utilisant une notation spĂ©ciale prise en compte par lâinterprĂ©teur. La redirection permet aux descripteurs de fichier dâĂȘtre dupliquĂ©s, ouverts, fermĂ©s, de faire rĂ©fĂ©rence Ă dâautres fichiers et peut modifier les fichiers lus et Ă©crits par la commande. Les redirections permettent Ă©galement de modifier les descripteurs de fichier dans lâenvironnement dâexĂ©cution actuel de lâinterprĂ©teur. Les opĂ©rateurs de redirection suivants peuvent prĂ©cĂ©der ou apparaĂźtre nâimporte oĂč dans une commande simple ou suivre une commande . Les redirections sont traitĂ©es dans leur ordre dâapparition, de gauche Ă droite.
Toutes les redirections pouvant ĂȘtre prĂ©cĂ©dĂ©es par un numĂ©ro de descripteur de fichier peuvent aussi ĂȘtre prĂ©cĂ©dĂ©es par un mot de la forme { nom_de_variable }. Dans ce cas, pour chaque opĂ©rateur de redirection Ă part >&- et <&-, lâinterprĂ©teur de commande allouera un descripteur de fichier supĂ©rieur ou Ă©gal Ă Â 10 et lâaffectera Ă nom_de_variable . Si >&- ou <&- sont prĂ©cĂ©dĂ©s de { nom_de_variable }, la valeur de nom_de_variable dĂ©finit le descripteur de fichier Ă fermer. Si { nom_de_variable } est fournie, la redirection persiste au-delĂ de la portĂ©e de la commande, permettant au programmeur de lâinterprĂ©teur de gĂ©rer manuellement la durĂ©e de vie du descripteur de fichier. Lâoption de lâinterprĂ©teur varredir_close gĂšre ce comportement.
Dans les descriptions suivantes, si le numĂ©ro de descripteur de fichier est omis et si le premier caractĂšre de lâopĂ©rateur de redirection est < , la redirection se rapporte Ă lâentrĂ©e standard (descripteur de fichier 0 ). Si le premier caractĂšre de lâopĂ©rateur de redirection est > , la redirection se rapporte Ă la sortie standard (descripteur de fichier 1 ).
Le mot qui suit lâopĂ©rateur de redirection dans les descriptions suivantes, Ă moins quâil en soit fait Ă©tat autrement, est soumis au dĂ©veloppement des accolades, du tilde, des paramĂštres et des variables, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique, Ă la suppression des protections, au dĂ©veloppement des chemins et au dĂ©coupage en mots. Sâil se dĂ©veloppe en plusieurs mots, bash signale une erreur.
Remarquez que lâordre des redirections est important. Par exemple, la commande
ls > liste_répertoires 2 >& 1
redirige Ă la fois la sortie standard et la sortie dâerreur standard vers le fichier liste_rĂ©pertoires , alors que la commande
ls 2 >& 1 > liste_répertoires
ne redirige que la sortie standard vers le fichier liste_rĂ©pertoires , car la sortie dâerreur standard a Ă©tĂ© dupliquĂ©e de la sortie standard avant que celle-ci ne soit redirigĂ©e vers liste_rĂ©pertoires .
Bash gĂšrent plusieurs noms de fichier spĂ©cifiquement quand ils sont utilisĂ©s dans des redirections. Si le systĂšme dâexploitation sur lequel bash sâexĂ©cute fournit ces fichiers spĂ©ciaux, bash les utilise ; sinon, il les Ă©mule en interne avec le comportement dĂ©crit ci-dessous.
/dev/fd/ df
Si df est un entier correct, le descripteur de fichier df est dupliqué.
/dev/stdin
Le descripteur de fichier 0 est dupliqué.
/dev/stdout
Le descripteur de fichier 1 est dupliqué.
/dev/stderr
Le descripteur de fichier 2 est dupliqué.
/dev/tcp/ hĂŽte / port
Si hĂŽte est un nom de machine ou une adresse Internet corrects et si port est un numĂ©ro de port entier ou un nom de service, bash tentera dâouvrir le socket TCP correspondant.
/dev/udp/ hĂŽte / port
Si hĂŽte est un nom de machine ou une adresse Internet corrects et si port est un numĂ©ro de port entier ou un nom de service, bash tentera dâouvrir le socket UDP correspondant.
Un Ă©chec Ă lâouverture ou Ă la crĂ©ation de fichier conduit Ă lâĂ©chec de la redirection.
Les redirections utilisant des descripteurs de fichier supĂ©rieurs Ă 9 doivent ĂȘtre utilisĂ©es avec prĂ©caution, car des conflits peuvent survenir avec les descripteurs de fichier utilisĂ©s en interne par lâinterprĂ©teur.
Notez que la commande interne exec peut faire appliquer les redirections Ă lâinterprĂ©teur de commande en cours.
Redirection dâentrĂ©e
Une redirection dâentrĂ©e conduit Ă lâouverture en lecture avec le descripteur de fichier numĂ©ro n du fichier dont le nom rĂ©sulte du dĂ©veloppement du mot ou en tant quâentrĂ©e standard (descripteur de fichier 0 ) si n nâest pas indiquĂ©.
Le format gĂ©nĂ©ral des redirections dâentrĂ©e est :
[ n ] < mot
Redirection de sortie
Une redirection de sortie conduit Ă lâouverture en Ă©criture du fichier dont le nom rĂ©sulte du dĂ©veloppement du mot avec comme descripteur de fichier n ou en tant que sortie standard (descripteur de fichier 1) si n nâest pas indiquĂ©. Si le fichier nâexiste pas, il est créé. Sâil existait dĂ©jĂ , sa taille est rĂ©duite Ă zĂ©ro.
Le format général des redirections de sortie est le suivant :
[ n ] > mot
Si lâopĂ©rateur de redirection est > et si lâoption noclobber de la commande interne set est activĂ©e, la redirection Ă©chouera si le fichier dont le nom rĂ©sulte du dĂ©veloppement du mot existe et est un fichier normal. Si lâopĂ©rateur de redirection est >| ou lâopĂ©rateur > avec lâoption noclobber de la commande interne set nâest pas activĂ©e, la redirection sera tentĂ©e mĂȘme si le fichier dont le nom rĂ©sulte du dĂ©veloppement du mot existe.
Ajout dâune sortie redirigĂ©e
La redirection de la sortie de cette façon conduit Ă lâouverture du fichier dont le nom rĂ©sulte du dĂ©veloppement du mot pour ajouter au descripteur de fichier n ou Ă la sortie standard (descripteur de fichier 1) si n nâest pas indiquĂ©. Si le fichier nâexiste pas, il est créé.
Le format général pour les sorties avec ajout est :
[ n ] >> mot
Redirection de la sortie standard et de la sortie dâerreur standard
Cette construction permet la redirection simultanĂ©e de la sortie standard (descripteur 1) et de la sortie dâerreur standard (descripteur 2), dans un fichier dont le nom est le rĂ©sultat du dĂ©veloppement du mot .
Il y a deux formes pour rediriger les sortie standard et sortie dâerreur standard :
&> mot
et
>& mot
La premiĂšre des deux formes est prĂ©fĂ©rĂ©e. Câest sĂ©mantiquement Ă©quivalent Ă
> mot 2 >& 1
En utilisant la deuxiĂšme forme, mot ne peut pas ĂȘtre dĂ©veloppĂ© en nombre ou - . Si câest le cas, les autres opĂ©rateurs de redirection sâappliquent (consultez DĂ©doublement de descripteurs de fichier ci-dessous) pour des raisons de compatibilitĂ©.
Ajout de la sortie standard et de la sortie dâerreur standard
Cette construction permet lâajout simultanĂ© de la sortie standard (descripteur 1) et de la sortie dâerreur standard (descripteur 2), dans un fichier dont le nom est le rĂ©sultat du dĂ©veloppement du mot .
La forme pour ajouter les sortie standard et sortie dâerreur standard est :
&>> mot
Câest sĂ©mantiquement Ă©quivalent Ă
>> mot 2 >& 1
(consultez Dédoublement de descripteurs de fichier ci-dessous).
Document en ligne
Ce type de redirection commande Ă lâinterprĂ©teur de lire son entrĂ©e de la source actuelle jusquâĂ ce quâil voit une ligne contenant seulement le dĂ©limiteur prĂ©vu (sans blancs finaux). Toutes les lignes lues jusquâĂ ce point sont ensuite utilisĂ©es comme entrĂ©e standard (ou comme descripteur de fichier n , si n est spĂ©cifiĂ©) pour une commande.
Le format des documents en ligne est le suivant :
[
n
]
<<
[
-
]
mot
document_en_ligne
délimiteur
Aucun dĂ©veloppement des paramĂštres ou des variables, ni substitution de commande, ni dĂ©veloppement arithmĂ©tique ou des chemins nâest effectuĂ© sur le mot . Si une partie du mot est protĂ©gĂ©e, le dĂ©limiteur est le rĂ©sultat de la suppression des protections sur mot et les lignes du document_en_ligne ne sont pas dĂ©veloppĂ©es. Si mot nâest pas protĂ©gĂ©, toutes les lignes du document_en_ligne sont soumises au dĂ©veloppement des paramĂštres, Ă la substitution de commande et au dĂ©veloppement arithmĂ©tique, la suite de caractĂšres \<changement_de_ligne> est ignorĂ©e et \ doit ĂȘtre utilisĂ©e pour protĂ©ger les caractĂšres \ , $ et ` .
Si lâopĂ©rateur de redirection est <<-, alors les tabulations en tĂȘte de chaque ligne sont supprimĂ©es de lâentrĂ©e, y compris dans la ligne contenant dĂ©limiteur . Cela permet dâindenter de façon naturelle les documents en ligne au sein des scripts.
ChaĂźnes en ligne
Une variante aux documents en ligne, le format est :
[ n ] <<< mot
Le mot est sujet au dĂ©veloppement du tilde, des paramĂštres et des variables, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique et Ă la suppression des protections. Ni le dĂ©veloppement des chemins, ni le dĂ©coupage en mots ne sont rĂ©alisĂ©s. Le rĂ©sultat est fourni comme une seule chaĂźne, avec lâajout dâun caractĂšre de changement de ligne, Ă la commande sur son entrĂ©e standard (ou sur le descripteur de fichier n , si n est spĂ©cifiĂ©).
Dédoublement de descripteurs de fichier
LâopĂ©rateur de redirection
[ n ] <& mot
permet de dupliquer les descripteurs de fichier en entrĂ©e. Si le mot se transforme en un ou plusieurs chiffres, le descripteur de fichier notĂ© par n devient une copie de ce descripteur. Si les chiffres du mot ne correspondent pas Ă un descripteur ouvert en lecture, une erreur de redirection se produit. Si le mot prend la forme - , le descripteur n est fermĂ©. Si n nâest pas mentionnĂ©, lâentrĂ©e standard (descripteur 0 ) est utilisĂ©e.
LâopĂ©rateur
[ n ] >& mot
est utilisĂ© de façon similaire pour dupliquer les descripteurs de sortie. Si n nâest pas explicitĂ©, la sortie standard (descripteur 1) est utilisĂ©e. Si les chiffres du mot ne correspondent pas Ă un descripteur en Ă©criture, une erreur de redirection se produit. Si mot est Ă©valuĂ© en - , le descripteur de fichier n est fermĂ©. Dans le cas particulier oĂč n est omis et oĂč mot ne se dĂ©veloppe pas en un ou plusieurs chiffres, ou - , les sorties standard et dâerreur standard sont toutes deux redirigĂ©es comme dĂ©crit prĂ©cĂ©demment.
Déplacement de descripteurs de fichier
LâopĂ©rateur de redirection
[ n ] <& chiffre -
dĂ©place le descripteur de fichier chiffre vers le descripteur de fichier n ou sur lâentrĂ©e standard (descripteur de fichier 0 ) si n nâest pas indiquĂ©. chiffre est fermĂ© aprĂšs avoir Ă©tĂ© dupliquĂ© en n .
De la mĂȘme façon, lâopĂ©rateur de redirection
[ n ] >& chiffre -
dĂ©place le descripteur de fichier chiffre vers le descripteur de fichier n ou sur la sortie standard (descripteur de fichier 1) si n nâest pas indiquĂ©.
Ouverture en Lecture/Ăcriture dâun descripteur de fichier
LâopĂ©rateur de redirection
[ n ] <> mot
conduit Ă lâouverture du fichier dont le nom rĂ©sulte du dĂ©veloppement du mot , Ă la fois en lecture et en Ă©criture et lui affecte le descripteur de fichier n ou bien le descripteur 0 si n nâest pas mentionnĂ©. Si le fichier nâexiste pas, il est créé.
ALIAS
Les alias permettent de substituer une chaĂźne Ă un mot lorsquâil est utilisĂ© comme premier mot dâune commande simple. LâinterprĂ©teur gĂšre une liste dâalias qui peuvent ĂȘtre créés et dĂ©truits avec les commandes internes alias et unalias (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). LâinterprĂ©teur vĂ©rifie si le premier mot de chaque commande simple, si non protĂ©gĂ©, est un alias. Si câest le cas, ce mot est remplacĂ© par le texte de lâalias. Les caractĂšres / , $ , ` et = et tout mĂ©tacaractĂšre de lâinterprĂ©teur ou caractĂšre de protection dĂ©crits ci-dessus ne peuvent pas apparaĂźtre dans un nom dâalias. Le texte de remplacement peut contenir toute entrĂ©e correcte pour lâinterprĂ©teur, y compris les mĂ©tacaractĂšres de lâinterprĂ©teur. LâinterprĂ©teur vĂ©rifie si le premier mot du texte de remplacement est Ă son tour un alias, mais un mot identique Ă un alias en cours de dĂ©veloppement nâest pas dĂ©veloppĂ© une seconde fois. Cela signifie quâon peut, par exemple, crĂ©er un alias ls valant ls -F et bash nâessaiera pas de dĂ©velopper rĂ©cursivement le texte de substitution. Si le dernier caractĂšre de la valeur de lâalias est un blanc , alors le prochain mot de commande suivant lâalias connaĂźtra aussi le dĂ©veloppement dâalias.
Les alias sont créés et affichés avec la commande alias et supprimés avec la commande unalias .
Il nâexiste pas de mĂ©canisme permettant dâutiliser des arguments dans le texte de remplacement. Sâils sont nĂ©cessaires, utilisez une fonction de lâinterprĂ©teur (consultez FONCTIONS ci-dessous).
Les alias ne sont pas dĂ©veloppĂ©s quand lâinterprĂ©teur nâest pas interactif sauf si lâoption expand_aliases de lâinterprĂ©teur est créée par la commande shopt (consultez la description de shopt dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Les rĂšgles concernant la dĂ©finition et lâutilisation des alias sont un peu confuses. Bash lit toujours au moins une ligne dâentrĂ©e complĂštement et toutes les lignes qui composent une commande composĂ©e, avant dâexĂ©cuter une des commandes de cette ligne ou de la commande composĂ©e. Les alias sont dĂ©veloppĂ©s lorsque la commande est lue et non pas lorsquâelle est exĂ©cutĂ©e. Ainsi, une dĂ©finition dâalias apparaissant sur la mĂȘme ligne quâune autre commande ne prend pas effet avant la lecture de la prochaine ligne dâentrĂ©e. Une commande placĂ©e Ă la suite dâune dĂ©finition dâalias sur la mĂȘme ligne ne sera pas affectĂ©e par ce nouvel alias. Ce comportement est Ă©galement important lors de lâexĂ©cution des fonctions. Les alias sont dĂ©veloppĂ©s lorsque la dĂ©finition de la fonction est lue et non pas lors de lâexĂ©cution de cette fonction, parce quâune dĂ©finition de fonction est elle-mĂȘme une commande. Ainsi des alias dĂ©finis dans une fonction ne sont pas disponibles avant la fin de lâexĂ©cution de la fonction. Pour plus de tranquillitĂ©, placez toujours les dĂ©finitions dâalias sur des lignes isolĂ©es et nâutilisez jamais la commande alias dans les commandes composĂ©es.
Les alias sont surpassĂ©s par les fonctions de lâinterprĂ©teur dans la plupart des situations.
FONCTIONS
Une fonction de lâinterprĂ©teur, dĂ©finie comme dĂ©crit ci-dessus, dans GRAMMAIRE DE LâINTERPRĂTEUR , conserve une suite de commandes pour exĂ©cution ultĂ©rieure. Lorsque le nom dâune fonction de lâinterprĂ©teur est utilisĂ©e comme un simple nom de commande, la liste des commandes associĂ©es Ă ce nom de fonction est exĂ©cutĂ©e. Les fonctions sont exĂ©cutĂ©es dans le contexte de lâinterprĂ©teur actuel ; aucun nouveau processus nâest créé pour les interprĂ©ter (Ă la diffĂ©rence dâun script). Lorsquâune fonction est exĂ©cutĂ©e, les arguments de la fonction deviennent les paramĂštres positionnels pendant son exĂ©cution. Le paramĂštre spĂ©cial # est mis Ă jour en consĂ©quence. Le paramĂštre spĂ©cial 0 reste inchangĂ©. Le premier Ă©lĂ©ment de la variable FUNCNAME contient le nom de la fonction pendant son exĂ©cution.
Tous les autres aspects de lâenvironnement dâexĂ©cution de lâinterprĂ©teur sont identiques entre la fonction et le contexte dâappel, aux exceptions suivantes : les captures de DEBUG et RETURN (consultez la description de la commande interne trap dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous) ne sont pas hĂ©ritĂ©es, Ă moins que lâattribut trace ne soit positionnĂ© pour la fonction (consultez la description de la commande interne declare ci-dessous) ou que lâoption dâinterprĂ©teur -o functrace nâait Ă©tĂ© activĂ©e avec la commande interne set (auquel cas toutes les fonctions hĂ©riteront des captures de DEBUG et RETURN ), et la capture ERR nâest pas hĂ©ritĂ©e Ă moins que lâoption dâinterprĂ©teur -o errtrace nâait Ă©tĂ© activĂ©e.
Les paramĂštres linguistiques rĂ©gionaux des variables pour les fonctions peuvent ĂȘtre dĂ©clarĂ©s avec la commande interne local ( local variables ). Normalement, les variables et leurs valeurs sont partagĂ©es entre la fonction et son contexte dâappel. Si une variable est dĂ©clarĂ©e local , la portĂ©e visible de la variable est restreinte Ă cette fonction et Ă ses enfants (y compris les fonctions quâelle appelle).
Dans la description suivante, la portĂ©e actuelle est une fonction qui sâexĂ©cute actuellement. Les portĂ©es prĂ©cĂ©dentes consistent en celles du contexte dâappel de la fonction et ainsi de suite, en remontant jusquâĂ la portĂ©e « globale », oĂč lâinterprĂ©teur nâexĂ©cute aucune fonction de lâinterprĂ©teur. Par consĂ©quent, une variable locale pour la portĂ©e actuelle est une variable dĂ©clarĂ©e avec les commandes internes local ou declare dans la fonction qui est exĂ©cutĂ©e actuellement.
Les variables locales « suivent » les variables du mĂȘme nom dĂ©clarĂ©es pour des portĂ©es prĂ©cĂ©dentes. Par exemple, une variable locale dĂ©clarĂ©e dans une fonction masque une variable globale du mĂȘme nom : les rĂ©fĂ©rences et les affectations se rĂ©fĂšrent Ă la variable locale, sans modifier la variable globale. Quand la fonction rend la main, la variable globale est Ă nouveau visible.
LâinterprĂ©teur utilise les portĂ©es dynamiques pour contrĂŽler la visibilitĂ© dâune variable dans les fonctions. Avec les portĂ©es dynamiques, les variables visibles et leurs valeurs sont le rĂ©sultat dâune suite dâappels de fonction qui font que lâexĂ©cution atteint la fonction actuelles. La valeur de la variable vue par une fonction dĂ©pend de sa valeur dans son contexte dâappel, sâil existe, que le contexte dâappel soit la portĂ©e « globale » ou une autre fonction de lâinterprĂ©teur. Câest aussi la valeur quâune dĂ©claration de variable locale « suit », et la valeur qui est restaurĂ©e quand la fonction rend la main.
Par exemple, si une variable var est déclarée comme locale dans la fonction fonc1 , et que fonc1 appelle une autre fonction, fonc2 , les références à var provenant de la fonc2 seront résolues à la valeur de la variable locale var provenant la fonc1 , masquant toute variable globale nommée var .
La commande interne unset fonctionne avec les mĂȘmes portĂ©es dynamiques : si une variable est locale pour la portĂ©e actuelle, unset la dĂ©truit ; autrement, la destruction se rĂ©fĂšre Ă la variable trouvĂ©e dans une portĂ©e dâappel comme dĂ©crit ci-dessus. Si une variable pour la portĂ©e locale actuelle est dĂ©sactivĂ©e, elle reste ainsi (apparaissant comme dĂ©truite) jusquâĂ ce quâelle soit rĂ©initialisĂ©e dans cette portĂ©e ou jusquâĂ ce que la fonction rende la main. Une fois que la fonction a rendu la main, toute instance de la variable dans la portĂ©e antĂ©rieure deviendra visible. Si la dĂ©sactivation agit sur une variable dans une portĂ©e antĂ©rieure, toute instance dâune variable de ce nom qui avait Ă©tĂ© masquĂ©e deviendra visible (voir plus loin comment lâoption de lâinterprĂ©teur localvar_unset modifie ce comportement).
La variable FUNCNEST , si configurĂ©e Ă une valeur numĂ©rique strictement positive, dĂ©finit le niveau maximal dâimbrication de fonctions. Les invocations de fonctions qui dĂ©passent la limite forceront toute la commande Ă abandonner.
Si la commande interne return est exĂ©cutĂ©e dans une fonction, celle-ci se termine et lâexĂ©cution reprend avec la commande suivant lâappel de fonction. Toute commande associĂ©e Ă la capture de RETURN est exĂ©cutĂ©e avant que lâexĂ©cution reprenne. Quand une fonction se termine, les paramĂštres positionnels et le paramĂštre spĂ©cial # reprennent les valeurs quâils avaient avant lâappel de la fonction.
Les noms et les dĂ©finitions de fonctions peuvent ĂȘtre affichĂ©s avec lâoption -f des commandes internes declare ou typeset . Lâoption -F de declare ou typeset nâaffichera que les noms de fonction (et facultativement le fichier source et le numĂ©ro de ligne, si lâoption dâinterprĂ©teur extdebug est activĂ©e). Les fonctions peuvent ĂȘtre exportĂ©es avec lâoption -f de la commande interne export , afin dâĂȘtre automatiquement dĂ©finies dans les processus enfant de lâinterprĂ©teur (ceux créés lors de lâexĂ©cution dâun lancement sĂ©parĂ© de lâinterprĂ©teur). Une dĂ©finition de fonction peut ĂȘtre supprimĂ©e avec lâoption -f de la commande interne unset .
Les fonctions peuvent ĂȘtre rĂ©cursives. La variable FUNCNEST peut ĂȘtre utilisĂ©e pour limiter la profondeur de la pile dâappel de la fonction et restreindre le nombre dâinvocations de fonctions. Par dĂ©faut, aucune limite nâest imposĂ©e quant au nombre dâappels rĂ©cursifs.
ĂVALUATION ARITHMĂTIQUE
LâinterprĂ©teur
permet, dans certaines circonstances,
lâĂ©valuation dâexpressions
arithmétiques (consultez les commandes internes
let
et
declare
ainsi que
Développement arithmétique
).
LâĂ©valuation est effectuĂ©e en utilisant
des entiers de longueur fixe, sans vérification du
débordement. Néanmoins, la division par
0
est capturée et marquée comme une
erreur. Les opérateurs, leur priorité, leur
associativitĂ© et leur valeur sont identiques Ă
ceux du langage C. La liste suivante
dâopĂ©rateurs est groupĂ©e par
opérateurs de niveaux de priorité identiques.
Les niveaux sont décrits par ordre de priorité
décroissante.
id
++
id
--
post-incrément et post-décrément de variables
|
- + |
moins et plus unaires |
++ id -- id
préincrément et prédécrément de variables
|
! Ë |
négations logique et binaire |
|||
|
** |
exponentiation |
|||
|
* / % |
multiplication, division, reste |
|||
|
+ - |
addition, soustraction |
|||
|
<< >> |
décalage arithmétique à gauche et à droite |
<= >= < >
comparaisons
|
== != |
égalité et différence |
|||
|
& |
ET binaire |
|||
|
Ë |
OU exclusif binaire |
|||
|
| |
OU binaire |
|||
|
&& |
ET logique |
|||
|
|| |
OU logique |
expr ? expr : expr
opérateur conditionnel
= *= /= %= += -= <<= >>= &= Ë= |=
affectations
expr1 , expr2
virgule
Les variables de lâinterprĂ©teur sont utilisables comme opĂ©randes, le dĂ©veloppement des paramĂštres Ă©tant effectuĂ© avant lâĂ©valuation arithmĂ©tique. Dans une expression, les variables de lâinterprĂ©teur peuvent Ă©galement ĂȘtre rĂ©fĂ©rencĂ©es par leur nom, sans utiliser la syntaxe de dĂ©veloppement des paramĂštres. Une variable dâinterprĂ©teur NULL ou inexistante est Ă©valuĂ©e Ă 0 lorsquâelle est consultĂ©e par son nom sans utiliser la syntaxe de dĂ©veloppement des paramĂštres. La valeur dâune variable est Ă©valuĂ©e comme une expression arithmĂ©tique lorsquâelle est consultĂ©e, ou lorsquâune valeur lui est affectĂ© alors que son attribut integer (entier) a Ă©tĂ© positionnĂ© en utilisant declare -i . Une valeur NULL est Ă©valuĂ©e Ă 0 . Une variable dâinterprĂ©teur nâa donc pas besoin dâavoir son attribut integer positionnĂ© pour ĂȘtre utilisable dans un calcul.
Les constantes de type entier suivent la dĂ©finition du langage C, sans suffixes ou constantes de caractĂšres. Les constantes commençant par 0 sont interprĂ©tĂ©es comme des nombres octaux. Un en-tĂȘte 0x ou 0X indique une valeur hexadĂ©cimale. Sinon, les nombres ont la forme [ base# ]n oĂč la base facultative est un nombre dĂ©cimal entre 2 et 64 reprĂ©sentant la base arithmĂ©tique et n est un nombre exprimĂ© dans cette base. Si la base# est omise, la base 10 est utilisĂ©e. En indiquant n , si un caractĂšre non chiffre est requis, les chiffres supĂ©rieurs Ă Â 9 sont reprĂ©sentĂ©s par les lettres minuscules, les lettres majuscules, le « @ » et le « _ », dans cet ordre. Si la base est infĂ©rieure ou Ă©gale Ă Â 36, les minuscules et les majuscules sont interchangeables pour reprĂ©senter les nombres entre 10 et 35.
Les opérateurs sont évalués par ordre de priorité. Les sous-expressions entre parenthÚses sont évaluées en premier, ce qui permet de surpasser les rÚgles de priorité ci-dessus.
CONDITIONS
Les conditions sont utilisĂ©es par la commande composĂ©e [[ et les commandes internes test et [ pour vĂ©rifier les attributs dâun fichier et effectuer des comparaisons arithmĂ©tiques ou sur des chaĂźnes. Les commandes test et [ dĂ©terminent comment elles se comportent Ă partir du nombre dâarguments ; consultez la description de ces commandes pour toutes les autres actions spĂ©cifiques aux commandes.
Les conditions se forment Ă partir des primitives unaires ou binaires suivantes. Bash gĂšre plusieurs noms de fichier spĂ©cifiquement quand ils sont utilisĂ©s dans des conditions. Si le systĂšme dâexploitation sur lequel bash sâexĂ©cute fournit ces fichiers spĂ©ciaux, bash les utilise ; sinon, il les Ă©mule en interne avec ce comportement : si nâimporte quel argument fichier de lâune des primitives est de la forme /dev/fd/n , alors le descripteur de fichier n est examinĂ©. Si lâargument fichier de lâune des primitives est parmi /dev/stdin , /dev/stdout ou /dev/stderr , le descripteur de fichier 0 , 1 ou 2 , respectivement, est examinĂ©.
Sauf indication contraire, les primitives relatives aux fichiers suivent les liens symboliques et opĂšrent sur la cible du lien plutĂŽt que sur le lien lui-mĂȘme.
Lorsquâils
sont utilisés avec
[[
, les opérateurs
<
et
>
ordonnent dâun point de vue
lexicographique en utilisant les paramĂštres
linguistiques régionaux actuels. La commande
test
trie en utilisant lâordre ASCII.
-a
fichier
Vrai si le fichier existe.
-b fichier
Vrai si le fichier existe et est un fichier spécial bloc.
-c fichier
Vrai si le fichier existe et est un fichier spécial caractÚre.
-d fichier
Vrai si le fichier existe et est un répertoire.
-e fichier
Vrai si le fichier existe.
-f fichier
Vrai si le fichier existe et est un fichier normal.
-g fichier
Vrai si le fichier existe et a son bit Set-GID positionné.
-h fichier
Vrai si le fichier existe et est un lien symbolique.
-k fichier
Vrai si le fichier existe et a son bit « sticky » positionné.
-p fichier
Vrai si le fichier existe et est un tube nommé (FIFO).
-r fichier
Vrai si le fichier existe et est accessible en lecture.
-s fichier
Vrai si le fichier existe et a une taille strictement positive.
|
-t df |
Vrai si le descripteur de fichier df est ouvert et se rapporte Ă un terminal. |
-u fichier
Vrai si le fichier existe et a son bit Set-UID positionné.
-w fichier
Vrai si le fichier existe et est accessible en écriture.
-x fichier
Vrai si le fichier existe et est exécutable.
-G fichier
Vrai si le fichier existe et appartient au GID effectif du groupe.
-L fichier
Vrai si le fichier existe et est un lien symbolique.
-N fichier
Vrai si le fichier existe et a été modifié depuis sa derniÚre lecture.
-O fichier
Vrai si le fichier existe et appartient Ă lâUID effectif de lâutilisateur.
-S fichier
Vrai si le fichier existe et est un socket.
fichier_1 -ef fichier_2
Vrai si le fichier_1 et le fichier_2 se rapportent au mĂȘme pĂ©riphĂ©rique et ont les mĂȘmes numĂ©ros dâinĆuds.
fichier_1 -nt fichier_2
Vrai si le fichier_1 est plus récent que le fichier_2 (selon les dates de derniÚre modification) ou si fichier_1 existe et non fichier_2 .
fichier_1 -ot fichier_2
Vrai si le fichier_1 est plus ancien que le fichier_2 ou si fichier_2 existe et non fichier_1 .
-o nom_opt
Vrai si lâoption dâinterprĂ©teur nom_opt est activĂ©e. Consulter la liste des options ci-dessous dans la description de lâoption -o de la commande interne set .
-v nom_de_variable
Vrai si la variable nom_de_variable de lâinterprĂ©teur est configurĂ©e (si une valeur lui a Ă©tĂ© assignĂ©e).
-R nom_de_variable
Vrai si la variable nom_de_variable de lâinterprĂ©teur est configurĂ©e et est une rĂ©fĂ©rence de nom.
-z chaĂźne
Vrai si la longueur de la chaĂźne est nulle.
|
chaĂźne |
-n chaĂźne
Vrai si la longueur de la chaĂźne est non nulle.
chaĂźne_1
==
chaĂźne_2
chaĂźne_1
=
chaĂźne_2
Vrai si les deux chaĂźnes sont Ă©gales. Le symbole = devrait ĂȘtre utilisĂ© avec la commande test pour ĂȘtre en conformitĂ© POSIX. UtilisĂ©e avec la commande [[ , cela rĂ©alise une correspondance de motif tel que dĂ©crit prĂ©cĂ©demment ( Commandes composĂ©es ).
chaĂźne_1 != chaĂźne_2
Vrai si les deux chaßnes sont différentes.
chaĂźne_1 < chaĂźne_2
Vrai si chaĂźne_1 se trouve avant chaĂźne_2 dans lâordre lexicographique.
chaĂźne_1 > chaĂźne_2
Vrai si chaĂźne_1 se trouve aprĂšs chaĂźne_2 dans lâordre lexicographique.
arg1 OP arg2
OP est lâun des opĂ©rateurs suivants -eq , -ne , -lt , -le , -gt ou -ge . Ces opĂ©rateurs arithmĂ©tiques binaires renvoient vrai si arg1 est respectivement Ă©gal, diffĂ©rent, infĂ©rieur, infĂ©rieur ou Ă©gal, supĂ©rieur, supĂ©rieur ou Ă©gal Ă arg2 . arg1 et arg2 peuvent ĂȘtre des entiers positifs ou nĂ©gatifs. Lorsquâils sont utilisĂ©s avec la commande [[ , arg1 et arg2 sont Ă©valuĂ©s comme des expressions arithmĂ©tiques (consultez ĂVALUATION ARITHMĂTIQUE ci-dessus).
DĂVELOPPEMENT DES COMMANDES SIMPLES
Lors de lâexĂ©cution dâune commande simple, lâinterprĂ©teur effectue les dĂ©veloppements, affectations et redirections, de gauche Ă droite dans lâordre suivant.
|
1. |
Les mots que lâanalyseur a repĂ©rĂ© comme affectations de variables (ceux qui prĂ©cĂšdent le nom de la commande) et les redirections sont conservĂ©es pour un traitement ultĂ©rieur. |
||
|
2. |
Les mots qui ne sont ni des affectations de variables ni des redirections sont dĂ©veloppĂ©s. Sâil reste des mots aprĂšs le dĂ©veloppement, le premier mot est considĂ©rĂ© comme le nom dâune commande et les suivants comme ses arguments. |
||
|
3. |
Les redirections sont effectuées comme décrit ci-dessus dans REDIRECTIONS . |
||
|
4. |
Le texte suivant le signe = de chaque affectation de variable est sujet au dĂ©veloppement du tilde, des paramĂštres, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique et Ă la suppression des protections avant dâĂȘtre affectĂ© Ă la variable. |
Si aucun nom de commande ne rĂ©sulte des prĂ©cĂ©dentes opĂ©rations, les affectations de variables modifient lâenvironnement actuel de lâinterprĂ©teur. Dans le cas de commandes de ce type (celles qui consistent uniquement en affectations et en redirections), les affectations sont effectuĂ©es avant les redirections. Sinon les variables sont ajoutĂ©es Ă lâenvironnement de la commande exĂ©cutĂ©e et nâaffectent pas lâenvironnement de lâinterprĂ©teur actuel. Si lâune des tentatives dâaffectation concerne une variable en lecture seule, une erreur se produit et la commande termine avec un Ă©tat diffĂ©rent de zĂ©ro.
Si aucun nom de commande nâest obtenu, les redirections sont effectuĂ©es mais ne modifient pas lâenvironnement de lâinterprĂ©teur actuel. Une erreur de redirection conduit Ă la terminaison de la commande avec un Ă©tat diffĂ©rent de zĂ©ro.
Sâil reste un nom de commande aprĂšs le dĂ©veloppement, lâexĂ©cution a lieu comme dĂ©crit ci-dessous. Sinon la commande termine. Si lâun des dĂ©veloppements contient une substitution de commande, lâĂ©tat final de la commande est lâĂ©tat final de la derniĂšre substitution de commande effectuĂ©e. Sâil nây avait aucune substitution de commande, la commande termine avec un Ă©tat de zĂ©ro.
EXĂCUTION DES COMMANDES
AprĂšs le dĂ©coupage de la ligne de commande en mots, si le rĂ©sultat est une commande simple suivie dâune liste facultative dâarguments, les actions suivantes sont effectuĂ©es.
Si le nom de la commande ne contient aucune barre oblique, lâinterprĂ©teur tente de la localiser. Sâil existe une fonction de lâinterprĂ©teur de ce nom, elle est appelĂ©e comme nous lâavons vu ci-dessus dans FONCTIONS . Si le nom nâest pas celui dâune fonction, lâinterprĂ©teur le recherche dans la liste des commandes internes. Si une correspondance est trouvĂ©e, cette commande interne est appelĂ©e.
Si le nom nâest ni celui dâune fonction de lâinterprĂ©teur, ni celui dâune commande interne et sâil ne contient pas de barre oblique, bash va chercher dans chacun des Ă©lĂ©ments de PATH un rĂ©pertoire contenant un fichier exĂ©cutable du nom dĂ©sirĂ©. Bash utilise une table de hachage pour mĂ©moriser les chemins dâaccĂšs complets aux fichiers exĂ©cutables (consultez la commande hash dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Une recherche complĂšte dans les rĂ©pertoires du PATH nâest effectuĂ©e que si la commande ne se trouve pas dans la table de hachage. Si la recherche est infructueuse, lâinterprĂ©teur recherche une fonction de lâinterprĂ©teur appelĂ©e command_not_found_handle . Si cette fonction existe, elle est appelĂ©e dans un environnement dâexĂ©cution sĂ©parĂ© avec la commande dâorigine et comme argument les arguments de celle-ci, et lâĂ©tat final de la fonction devient lâĂ©tat final de ce sous-interprĂ©teur. Si cette fonction nâest pas dĂ©finie, lâinterprĂ©teur affiche un message dâerreur et renvoie un Ă©tat final de 127.
Si la recherche rĂ©ussit ou si le nom de la commande contient une ou plusieurs barres obliques, lâinterprĂ©teur exĂ©cute le programme demandĂ© dans un environnement dâexĂ©cution distinct. Lâargument 0 est configurĂ© au nom indiquĂ© et les Ă©ventuels arguments restants de la commande sont configurĂ©s aux arguments indiquĂ©s.
Si cette exĂ©cution Ă©choue parce que le programme nâest pas un exĂ©cutable et si le fichier nâest pas un rĂ©pertoire, il est pris pour un script , un fichier contenant des commandes dâinterprĂ©teur, et lâinterprĂ©teur crĂ©e une nouvelle instance de lui-mĂȘme pour exĂ©cuter ce script. Ce sous-interprĂ©teur se rĂ©initialisera lui-mĂȘme, comme si un nouvel interprĂ©teur avait Ă©tĂ© appelĂ© pour exĂ©cuter le script, Ă la diffĂ©rence quâil continuera Ă mĂ©moriser lâemplacement des commandes connues de son parent (consultez hash dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Si le programme est un fichier commençant par #! , le reste de la premiĂšre ligne indique un interprĂšte pour ce programme. LâinterprĂ©teur se chargera dâexĂ©cuter lâinterprĂšte indiquĂ© sur les systĂšmes dâexploitation qui ne gĂšrent pas eux-mĂȘmes ce format dâexĂ©cutable. Les arguments de lâinterprĂšte consistent en un seul argument facultatif fourni sur la premiĂšre ligne du fichier Ă la suite du nom de lâinterprĂšte, suivi du nom du programme, suivi des arguments de la commande sâil y en a.
ENVIRONNEMENT DâEXĂCUTION DES COMMANDES
LâinterprĂ©teur fournit un environnement dâexĂ©cution consistant en lâensemble des Ă©lĂ©ments suivants :
|
- |
les fichiers ouverts hĂ©ritĂ©s par lâinterprĂ©teur Ă son appel et modifiĂ©s par les redirections fournies Ă la commande interne exec ; |
||
|
- |
le rĂ©pertoire de travail actuel comme configurĂ© par cd , pushd ou popd ou hĂ©ritĂ© par lâinterprĂ©teur Ă son appel ; |
||
|
- |
le masque de crĂ©ation de fichier comme configurĂ© par umask ou hĂ©ritĂ© du parent de lâinterprĂ©teur ; |
||
|
- |
les captures actuelles configurées par trap ; |
||
|
- |
les paramĂštres de lâinterprĂ©teur configurĂ©s par des affectations de variables, avec la commande interne set , ou hĂ©ritĂ©s de lâenvironnement du parent de lâinterprĂ©teur ; |
||
|
- |
les fonctions de lâinterprĂ©teur dĂ©finies lors de lâexĂ©cution ou hĂ©ritĂ©es de lâenvironnement du parent de lâinterprĂ©teur ; |
||
|
- |
les options activĂ©es Ă lâappel (par dĂ©faut ou avec les arguments de ligne de commande) ou par set ; |
||
|
- |
les options activées par shopt ; |
||
|
- |
les alias de lâinterprĂ©teur dĂ©finies par la commande alias ; |
||
|
- |
les ID des divers processus, y compris ceux des tĂąches en arriĂšre-plan, la valeur de $$ et la valeur de PPID . |
Lorsquâune commande diffĂ©rente dâune commande interne ou dâune fonction de lâinterprĂ©teur doit ĂȘtre exĂ©cutĂ©e, elle est appelĂ©e dans un environnement dâexĂ©cution sĂ©parĂ© constituĂ© de ce qui suit. Sauf indication contraire, les valeurs sont hĂ©ritĂ©es de lâenvironnement de lâinterprĂ©teur :
|
- |
les fichiers ouverts de lâinterprĂ©teur, ainsi que toutes modifications et ajouts prĂ©cisĂ©s par les redirections de la commande ; |
||
|
- |
le répertoire de travail actuel ; |
||
|
- |
le masque de création de fichiers ; |
||
|
- |
les variables et les fonctions de lâinterprĂ©teur marquĂ©es pour lâexportation, ainsi que les variables exportĂ©es spĂ©cialement pour la commande ; |
||
|
- |
les captures interceptĂ©es par lâinterprĂ©teur sont rĂ©initialisĂ©es aux valeurs hĂ©ritĂ©es de lâinterprĂ©teur parent et les captures ignorĂ©es par lâinterprĂ©teur restent ignorĂ©es. |
Une commande appelĂ©e dans un environnement distinct ne peut pas affecter lâenvironnement dâexĂ©cution de lâinterprĂ©teur.
Un sous-interprĂ©teur est une copie du processus de lâinterprĂ©teur.
Les substitutions de commande, les commandes groupĂ©es entre parenthĂšses et les commandes asynchrones sont appelĂ©es dans un environnement de sous-interprĂ©teur qui est une copie de celui de lâinterprĂ©teur, mais les captures interceptĂ©es par lâinterprĂ©teur sont rĂ©initialisĂ©es aux valeurs que lâinterprĂ©teur avait hĂ©ritĂ©es de son parent Ă son appel. Les commandes internes appelĂ©es dans un pipeline sont aussi exĂ©cutĂ©es dans un environnement de sous-interprĂ©teur. Les modifications apportĂ©es Ă lâenvironnement dâun sous-interprĂ©teur nâaffectent aucunement lâenvironnement dâexĂ©cution de lâinterprĂ©teur.
Les sous-interprĂ©teurs engendrĂ©s pour exĂ©cuter les substitutions de commande hĂ©ritent de la valeur de lâoption -e de lâinterprĂ©teur parent. En dehors du mode POSIX , bash efface lâoption -e de tels sous-interprĂ©teurs.
Si une commande est suivie par un & et que le contrĂŽle des tĂąches nâest pas actif, lâentrĂ©e standard par dĂ©faut de la commande est le fichier vide /dev/null . Sinon, la commande appelĂ©e hĂ©rite des descripteurs de fichier de lâinterprĂ©teur appelant comme modifiĂ©s par les redirections.
ENVIRONNEMENT
Quand un programme est appelĂ©, il reçoit un tableau de chaĂźnes que lâon appelle environnement . Il sâagit dâune liste de couples nom - valeur , de la forme nom = valeur .
LâinterprĂ©teur fournit plusieurs façons de gĂ©rer lâenvironnement. Au dĂ©marrage, lâinterprĂ©teur analyse son propre environnement et crĂ©e un paramĂštre pour chaque nom trouvĂ©, en le marquant comme exportable vers les processus enfants. Les commandes exĂ©cutĂ©es hĂ©ritent de cet environnement. Les commandes export et declare -x permettent dâajouter ou de supprimer des paramĂštres ou des fonctions de lâenvironnement. Si la valeur dâun paramĂštre de lâenvironnement est modifiĂ©e, la nouvelle valeur devient une partie de lâenvironnement et elle remplace lâancienne. Lâenvironnement hĂ©ritĂ© par toute commande exĂ©cutĂ©e est lâenvironnement initial de lâinterprĂ©teur, dont les valeurs peuvent ĂȘtre modifiĂ©es dans lâinterprĂ©teur, sans les Ă©lĂ©ments supprimĂ©s par la commande unset , et avec les Ă©lĂ©ments ajoutĂ©s par les commandes export et declare -x .
Lâenvironnement dâune commande simple ou dâune fonction peut ĂȘtre augmentĂ© temporairement, en la faisant prĂ©cĂ©der des affectations de paramĂštres, comme nous lâavons vu ci-dessus dans PARAMĂTRES . Ces affectations ne concernent que lâenvironnement vu par cette commande.
Si lâoption -k est configurĂ©e (consultez ci-dessous la commande interne set ), alors toutes les affectations de paramĂštres sont placĂ©es dans lâenvironnement dâune commande exĂ©cutĂ©e et non seulement celles qui prĂ©cĂšdent son nom.
Quand bash appelle une commande externe, la variable _ est configurĂ©e en chemin dâaccĂšs complet Ă cette commande et elle est transmise dans lâenvironnement.
CODE DE RETOUR
LâĂ©tat final dâune commande exĂ©cutĂ©e est la valeur renvoyĂ©e par lâappel systĂšme waitpid ou fonction Ă©quivalente. Les Ă©tats finaux prennent leurs valeurs entre 0 et 255, nĂ©anmoins, comme expliquĂ© ci-dessous, lâinterprĂ©teur peut utiliser les valeurs supĂ©rieures Ă 125 de façon particuliĂšre. Les Ă©tats finaux des commandes internes et composĂ©es sont Ă©galement limitĂ©s Ă cet intervalle. Sous certaines conditions, lâinterprĂ©teur utilisera des valeurs particuliĂšres pour indiquer des modes dâĂ©chec particuliers.
Du point de vue de lâinterprĂ©teur, une commande qui termine avec Ă©tat final valant zĂ©ro a rĂ©ussi. Un Ă©tat final de zĂ©ro indique le succĂšs. Un Ă©tat final diffĂ©rent de zĂ©ro indique un Ă©chec. Quand une commande se termine par un signal mortel N , bash utilise la valeur 128+ N comme Ă©tat final.
Si une commande nâest pas trouvĂ©e, le processus enfant créé pour lâexĂ©cuter renvoie un Ă©tat de 127. Si une commande est trouvĂ©e mais pas exĂ©cutable, la valeur renvoyĂ©e est 126.
Si une commande Ă©choue Ă cause dâune erreur survenue lors dâun dĂ©veloppement ou des redirections, lâĂ©tat final est strictement plus grand que zĂ©ro.
Les commandes internes renvoient un état de 0 ( vrai ) si réussies et une valeur différente de zéro ( faux ) si une erreur se produit pendant leur exécution. Toutes les commandes internes renvoient un état final de 2 pour indiquer un usage incorrect, en général des options non valables ou des arguments manquants.
Le code de retour de la derniÚre commande est disponible dans le paramÚtre spécial $? .
Bash lui-mĂȘme renvoie lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e, Ă moins quâune erreur de syntaxe ne se produise, auquel cas il termine avec une valeur diffĂ©rente de zĂ©ro. Consultez aussi ci-dessous la commande interne exit .
SIGNAUX
Quand bash fonctionne de façon interactive, en absence de toute capture, il ignore SIGTERM (câest ainsi que kill 0 ne tue pas un interprĂ©teur interactif) et SIGINT est interceptĂ© et gĂ©rĂ© (câest ainsi que la commande interne wait est interruptible). Dans tous les cas, bash ignore SIGQUIT . Si le contrĂŽle des tĂąches est actif, bash ignore SIGTTIN , SIGTTOU et SIGTSTP .
Les commandes externes lancĂ©es par bash ont les gestionnaires de signaux configurĂ©s aux valeurs hĂ©ritĂ©es par lâinterprĂ©teur de son parent. Quand le contrĂŽle des tĂąches nâest pas actif, les tĂąches en arriĂšre-plan ignorent les signaux SIGINT et SIGQUIT en plus des gestionnaires hĂ©ritĂ©s. Les commandes exĂ©cutĂ©es en tant que rĂ©sultat dâune substitution de commande ignorent les signaux de contrĂŽle de tĂąches Ă©mis par le clavier SIGTTIN , SIGTTOU et SIGTSTP .
Par dĂ©faut, lâinterprĂ©teur termine Ă la rĂ©ception de SIGHUP . Avant de terminer, un interprĂ©teur interactif renvoie le SIGHUP Ă toutes les tĂąches en cours ou suspendues. Les tĂąches suspendues reçoivent aussi SIGCONT pour sâassurer quâelles reçoivent bien le SIGHUP . Pour empĂȘcher lâinterprĂ©teur dâenvoyer le signal Ă une tĂąche particuliĂšre, elle devrait ĂȘtre supprimĂ©e de la table des tĂąches avec la commande interne disown (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous) ou marquĂ©e comme exemptĂ©e de SIGHUP en utilisant disown -h .
Si lâoption dâinterprĂ©teur huponexit a Ă©tĂ© configurĂ©e avec la fonction shopt , bash envoie un signal SIGHUP Ă toutes les tĂąches lorsquâun interprĂ©teur de commandes de connexion interactif termine.
Lorsque bash attend quâune commande se termine et quâil reçoit un signal pour lequel une capture a Ă©tĂ© configurĂ©e, la capture ne sera pas exĂ©cutĂ©e tant que la commande nâest pas terminĂ©e. Lorsque bash attend la fin dâune commande asynchrone par la commande interne wait , la rĂ©ception dâun signal pour lequel une capture a Ă©tĂ© configurĂ©e conduira Ă un retour immĂ©diat de la commande interne wait avec un Ă©tat final supĂ©rieur Ă 128, Ă la suite de quoi la capture est immĂ©diatement exĂ©cutĂ©e.
Quand le contrĂŽle des tĂąches nâest pas activĂ©, et que bash est dans lâattente de lâachĂšvement dâune commande au premier plan, lâinterprĂ©teur reçoit les signaux Ă©mis par le clavier comme SIGINT (gĂ©nĂ©ralement créé par ËC ) que lâutilisateur a gĂ©nĂ©ralement lâintention dâenvoyer Ă cette commande. Cela se produit parce que lâinterprĂ©teur et la commande sont dans le mĂȘme groupe de processus que le terminal, et ËC envoie un SIGINT Ă tous les processus de ce groupe de processus.
Quand bash est exĂ©cutĂ© sans que le contrĂŽle de tĂąche ne soit activĂ© et reçoit un SIGINT pendant quâil attend une commande au premier plan, il attend jusquâĂ ce que la commande au premier plan sâachĂšve et dĂ©cide ensuite que faire du SIGINT :
|
1. |
Si la commande termine du fait du SIGINT , bash conclut que lâutilisateur a lâintention de mettre fin Ă tout le script et rĂ©pond au SIGINT (par exemple en exĂ©cutant une capture de SIGINT ou en sâarrĂȘtant lui-mĂȘme) ; |
||
|
2. |
Si la commande ne se termine pas du fait du SIGINT , le programme a gĂ©rĂ© le SIGINT lui mĂȘme et ne lâa pas traitĂ© comme un signal fatal. Dans ce cas bash ne traite pas le SIGINT comme un signal fatal, en supposant plutĂŽt soit que le SIGINT Ă©tait utilisĂ© comme un Ă©lĂ©ment du dĂ©roulement normal du programme (par exemple, emacs lâutilise pour interrompre des commandes dâĂ©dition) ou Ă©tait abandonnĂ© dĂ©libĂ©rĂ©ment. NĂ©anmoins, bash exĂ©cutera toute capture dĂ©finie par SIGINT , comme il le fait pour tout autre signal capturĂ© reçu pendant quâil attend que la commande au premier plan sâachĂšve, pour des raisons de compatibilitĂ© |
CONTRĂLE DES TĂCHES
Le contrĂŽle des tĂąches se rĂ©fĂšre Ă la capacitĂ© de suspendre ( suspend ) sĂ©lectivement lâexĂ©cution dâun processus et de la reprendre ( resume ) ultĂ©rieurement. Lâutilisateur bĂ©nĂ©ficie gĂ©nĂ©ralement de cette possibilitĂ© grĂące Ă lâaction conjointe du pilote de terminal du noyau de systĂšme dâexploitation et de bash .
LâinterprĂ©teur associe une tĂąche Ă chaque pipeline. Il maintient une table des tĂąches en cours dâexĂ©cution, cette table pouvant ĂȘtre affichĂ©e avec la commande jobs . Quand bash lance une tĂąche de façon asynchrone (en arriĂšre-plan ), il affiche une ligne qui ressemble Ă Â :
[1] 25647
Cette ligne indique que la tĂąche est la tĂąche numĂ©ro 1 et que le PID du dernier processus dans le pipeline associĂ© Ă cette tĂąche est 25647. Tous les processus dâun mĂȘme pipeline font partie de la mĂȘme tĂąche. Bash utilise la notion de tĂąche comme base du contrĂŽle des tĂąches.
Pour faciliter lâimplĂ©mentation dâune interface utilisateur pour le contrĂŽle de tĂąches, le systĂšme introduit la notion dâ ID de groupe de processus associĂ©s Ă un terminal . Les membres de ce groupe de processus (processus dont le GID est Ă©gal au Process Group ID du terminal actuel) reçoivent les signaux Ă©mis par le clavier comme SIGINT . Ces processus sont dits au premier plan . Les processus en arriĂšre-plan sont ceux dont le Process-GID diffĂšre de celui du terminal ; ils sont indiffĂ©rents aux signaux Ă©mis par le clavier. Seuls les processus au premier plan peuvent lire depuis le terminal ou, si lâutilisateur lâindique avec stty tostop, y Ă©crire. Les processus en arriĂšre-plan qui tentent une lecture (ou une Ă©criture si stty tostop est actif) dans le terminal reçoivent un signal SIGTTIN (SIGTTOU) Ă©mis par le pilote du terminal du noyau, qui, sauf interception, suspend le processus.
Si le systĂšme dâexploitation sur lequel bash fonctionne permet le contrĂŽle des tĂąches, bash fournit des outils pour lâutiliser. La frappe dâun caractĂšre de suspension (gĂ©nĂ©ralement ËZ , ContrĂŽle-Z) pendant lâexĂ©cution dâun processus conduit Ă la suspension de celui-ci et redonne la main Ă bash . La frappe dâun caractĂšre de suspension diffĂ©rĂ©e (gĂ©nĂ©ralement ËY , ContrĂŽle-Y) conduira Ă la suspension du processus au moment oĂč il tentera de lire des saisies depuis le terminal et la main reviendra Ă bash . Lâutilisateur peut alors manipuler lâĂ©tat de cette tĂąche en utilisant la commande bg (background = arriĂšre-plan) pour en continuer lâexĂ©cution en arriĂšre-plan, la commande fg (foreground = premier plan) pour la continuer au premier plan ou encore la commande kill pour la tuer. Un ËZ sâapplique immĂ©diatement et a pour effet de bord dâĂ©liminer les sorties et saisies en attente.
Plusieurs façons permettent de se rapporter Ă une tĂąche. Le caractĂšre % introduit une spĂ©cification de tĂąche ( jobspec ). Il est possible de se rapporter Ă la tĂąche numĂ©ro n avec %n . Il est Ă©galement possible de se rapporter Ă une tĂąche en utilisant un prĂ©fixe du nom utilisĂ© pour la lancer ou une sous-chaĂźne qui apparaĂźt dans sa ligne de commande. Par exemple, %ce se rapporte Ă une tĂąche suspendue dont le nom de commande commence par ce . Si ce prĂ©fixe correspond Ă plusieurs tĂąches, bash signale une erreur. Utiliser %?ce , dâun autre cĂŽtĂ©, se rapporte Ă toute tĂąche contenant la chaĂźne ce dans sa ligne de commande. Si la sous-chaĂźne correspond Ă plusieurs tĂąches, bash signale une erreur. Les symboles %% et %+ se rapportent Ă la notion de tĂąche actuelle de lâinterprĂ©teur, câest-Ă -dire la derniĂšre tĂąche suspendue alors quâelle Ă©tait au premier plan ou dĂ©marrĂ©e en arriĂšre-plan. La tĂąche prĂ©cĂ©dente peut ĂȘtre dĂ©signĂ©e en utilisant %- . Si une seule tĂąche existe, %+ et %- peuvent tous deux ĂȘtre utilisĂ©s pour se rapporter Ă cette tĂąche. Dans les affichages se rapportant aux tĂąches (par exemple la sortie de la commande jobs ), la tĂąche actuelle est toujours annotĂ©e dâun + et la tĂąche prĂ©cĂ©dente dâun - . Un simple % (non accompagnĂ© de spĂ©cification de tĂąche) se rapporte Ă©galement Ă la tĂąche actuelle.
Il suffit de nommer une tĂąche pour la ramener au premier plan : %1 est synonyme de « fg %1 » et ramĂšne la tĂąche 1 de lâarriĂšre-plan vers le premier plan. De mĂȘme, « %1 & » reprend la tĂąche 1 en arriĂšre-plan, de façon Ă©quivalente à « bg %1 » .
LâinterprĂ©teur est immĂ©diatement prĂ©venu lorsquâune tĂąche change dâĂ©tat. Normalement bash attend dâĂȘtre prĂȘt Ă afficher son interprĂ©teur avant de signaler des changements dans lâĂ©tat des tĂąches, afin de ne pas interrompre toute autre sortie. Si lâoption -b de la commande interne set est activĂ©e, bash signalera de telles modifications immĂ©diatement. Toute capture sur SIGCHLD est exĂ©cutĂ©e pour chaque enfant qui se termine.
Si une tentative visant Ă terminer bash est rĂ©alisĂ©e alors que des tĂąches sont suspendues (ou, si lâoption dâinterprĂ©teur checkjobs a Ă©tĂ© activĂ©e par la commande interne shopt , en cours dâexĂ©cution), lâinterprĂ©teur affiche un message dâavertissement, et, si lâoption dâinterprĂ©teur checkjobs est activĂ©e, affiche la liste les tĂąches et leurs Ă©tats. La commande jobs peut alors ĂȘtre utilisĂ©e pour examiner leur Ă©tat. Si une deuxiĂšme tentative est faite pour terminer sans commande intercalaire, lâinterprĂ©teur nâaffiche aucun autre avertissement et les tĂąches suspendues sont terminĂ©es.
Lorsque lâinterprĂ©teur est dans lâattente dâune tĂąche ou dâun processus utilisant la commande interne wait et que le contrĂŽle des tĂąches est activĂ©, wait rendra la main quand la tĂąche changera dâĂ©tat. Lâoption -f fera que wait attendra que la tĂąche ou le processus termine avant de rendre la main.
INVITES
Quand il est exĂ©cutĂ© de façon interactive, bash affiche lâinvite de base PS1 dĂšs quâil est prĂȘt Ă lire une commande et lâinvite secondaire PS2 quand il a besoin de plus de saisies pour exĂ©cuter une commande. Bash affiche PS0 aprĂšs avoir lu une commande, mais avant de lâexĂ©cuter. Bash affiche PS4 comme dĂ©crit ci-dessus avant de tracer chaque commande quand lâoption -x est activĂ©e. Bash permet de personnaliser ces chaĂźnes dâinvite, en insĂ©rant un certain nombre de caractĂšres spĂ©ciaux protĂ©gĂ©s par des contre-obliques qui sont dĂ©codĂ©s comme suit :
|
\a |
un caractĂšre ASCII dâalarme (07)Â ; |
||
|
\d |
la date au format « Jour_de_la_semaine Mois QuantiÚme » (par exemple : « Tue May 26 ») ; |
\D{ format }
le format est passĂ© Ă strftime (3) et le rĂ©sultat est insĂ©rĂ© dans la chaĂźne de lâinvite ; un format vide implique une reprĂ©sentation du temps spĂ©cifique aux paramĂštres linguistiques rĂ©gionaux. Les accolades sont nĂ©cessaires ;
|
\e |
un caractĂšre de protection ASCII (033)Â ; |
||
|
\h |
le nom de la machine, jusquâau premier point « . » ; |
||
|
\H |
le nom de la machine ; |
||
|
\j |
le nombre de tĂąches actuellement gĂ©rĂ©es par lâinterprĂ©teur ; |
||
|
\l |
le nom de base du nom de pĂ©riphĂ©rique de terminal de lâinterprĂ©teur ; |
||
|
\n |
changement de ligne ; |
||
|
\r |
retour chariot |
||
|
\s |
le nom de lâinterprĂ©teur, câest-Ă -dire le nom de base de $0 (la portion suivant la derniĂšre barre oblique) ; |
||
|
\t |
lâheure actuelle au format HH:MM:SS sur 24 heures ; |
||
|
\T |
lâheure actuelle au format HH:MM:SS sur 12 heures ; |
||
|
\@ |
lâheure actuelle au format HH:MM sur 12 heures ; |
||
|
\A |
lâheure actuelle au format HH:MM sur 24 heures ; |
||
|
\u |
le nom de lâutilisateur ; |
||
|
\v |
la version de bash (par exemple, 2.00)Â ; |
||
|
\V |
le numéro de version complet (avec niveau de correctifs) de bash , (par exemple, 2.00.0) ; |
||
|
\w |
la valeur de la variable de lâinterprĂ©teur ( $PWD ), avec $HOME abrĂ©gĂ© en tilde « Ë » (utilise la valeur de la variable PROMPT_DIRTRIM ) ; |
||
|
\W |
le nom de base de $PWD , avec $HOME abrĂ©gĂ© en tilde (« Ë ») ; |
||
|
\! |
le numĂ©ro dâhistorique de la commande ; |
||
|
\# |
le numéro de la commande ; |
||
|
\$ |
# si lâUID effectif est 0 , $ sinon ; |
||
|
\ nnn |
le caractĂšre de code octal nnn ; |
||
|
\\ |
une contre-oblique ; |
||
|
\[ |
dĂ©bute une suite de caractĂšres non imprimables, qui peuvent ĂȘtre utilisĂ©s pour inclure une suite de caractĂšres de contrĂŽle du terminal dans lâinterprĂ©teur ; |
||
|
\] |
finit une suite de caractĂšres non imprimables. |
Le numĂ©ro de commande et le numĂ©ro dâhistorique sont gĂ©nĂ©ralement diffĂ©rents : le numĂ©ro dâhistorique dâune commande correspond Ă sa position dans la file dâhistorique qui peut contenir des commandes relues depuis cette liste (consultez HISTORIQUE ci-dessous), alors que le numĂ©ro de commande est simplement une position dans la suite de commandes exĂ©cutĂ©es depuis le dĂ©but de la session dâinterprĂ©teur actuelle. AprĂšs que la chaĂźne ait Ă©tĂ© dĂ©codĂ©e, elle est soumise au dĂ©veloppement des paramĂštres, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique, au dĂ©coupage des mots et Ă la suppression des protections, selon la valeur de lâoption dâinterprĂ©teur promptvars (consultez la description de shopt dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Cela peut avoir des effets non dĂ©sirĂ©s si des portions protĂ©gĂ©es de la chaĂźne apparaissent Ă lâintĂ©rieur de la substitution de commande ou contiennent des caractĂšres spĂ©ciaux pour le dĂ©veloppement de mots.
READLINE
Câest la bibliothĂšque qui gĂšre la lecture des saisies lors des sessions interactives de lâinterprĂ©teur, Ă moins que lâoption --noediting ne soit indiquĂ©e Ă lâappel de lâinterprĂ©teur. Par dĂ©faut les commandes dâĂ©dition de ligne sont similaires Ă celles dâEmacs. Une interface dâĂ©dition de ligne dans le style vi est aussi disponible. Pour arrĂȘter lâĂ©dition de ligne aprĂšs le dĂ©marrage de lâinterprĂ©teur, utiliser lâoption +o emacs ou +o vi de la commande interne set (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Notation readline
Dans ce paragraphe on utilisera la notation « à la Emacs » pour indiquer les frappes de touches. Les touches ContrĂŽle sont notĂ©es C- touche , par exemple C-n signifie ContrĂŽle-N. De mĂȘme, les touches MĂ©ta sont notĂ©es par M- touche , ainsi M-x signifie MĂ©ta-X. (Sur les claviers sans touches MĂ©ta , M- x signifie ESC x , câest-Ă -dire presser la touche dâĂchappement puis la touche x . Cela fait de ESC le prĂ©fixe mĂ©ta . La combinaison M-C- x signifie ESC-ContrĂŽle- x ou encore presser la touche dâĂchappement puis maintenir la touche ContrĂŽle enfoncĂ©e tout en pressant la touche x .)
Les commandes readline peuvent recevoir des arguments numĂ©riques, qui fonctionnent en rĂšgle gĂ©nĂ©rale comme compteurs de rĂ©pĂ©titions. Parfois, cependant, câest le signe de lâargument qui est significatif. Lâutilisation dâun argument nĂ©gatif pour une commande agissant dans un sens donnĂ© (par exemple kill-line ) conduit cette commande Ă agir dans la direction opposĂ©e. Les commandes dont le comportement avec les arguments diffĂšre de cela sont indiquĂ©es ci-dessous.
Lorsquâune commande est indiquĂ©e comme dĂ©truisant du texte, le texte effacĂ© est en fait sauvegardĂ© pour une Ă©ventuelle rĂ©cupĂ©ration ultĂ©rieure (« yanking »). Il est conservĂ© dans un tampon circulaire (« kill ring »). Les suppressions successives conduisent Ă lâaccumulation du texte en un seul bloc qui peut ĂȘtre rĂ©cupĂ©rĂ© en une fois. Les commandes non destructives sĂ©parent les blocs de textes dans le tampon circulaire.
Initialisation de readline
Readline est personnalisĂ© en plaçant des commandes dans un fichier dâinitialisation (le fichier inputrc ). Le nom de ce fichier est pris dans la variable de lâinterprĂ©teur INPUTRC . Si cette variable est inexistante, le nom par dĂ©faut est Ë/.inputrc . Si ce fichier nâexiste pas ou sâil ne peut pas ĂȘtre lu, le dernier fichier par dĂ©faut est /etc/inputrc . Lorsquâun programme utilisant la bibliothĂšque readline dĂ©marre, le fichier dâinitialisation est lu et les raccourcis clavier et les variables sont mis en place. Il nây a que quelques constructions Ă©lĂ©mentaires possibles dans le fichier dâinitialisation de readline. Les lignes blanches sont ignorĂ©es. Les lignes commençant par # sont des commentaires. Les lignes commençant par $ indiquent des constructions conditionnelles. Les autres lignes indiquent des raccourcis clavier et des paramĂ©trages de variables.
Les raccourcis clavier par dĂ©faut peuvent ĂȘtre modifiĂ©s par un fichier inputrc . Dâautres programmes qui utilisent cette bibliothĂšque peuvent ajouter leurs propres commandes et raccourcis.
Par exemple, en plaçant
M-Control-u: universal-argument
ou
C-Meta-u: universal-argument
dans le fichier inputrc , on associera la suite de touches M-C-u Ă la commande readline universal-argument .
Les caractÚres symboliques suivants sont acceptés : RUBOUT , DEL , ESC , LFD , NEWLINE , RET , RETURN , SPC , SPACE et TAB .
En plus des noms de commandes, readline permet dâassocier Ă une touche une chaĂźne de caractĂšres qui sera insĂ©rĂ©e lorsque la touche est pressĂ©e (une macro ).
Raccourcis clavier readline
La syntaxe pour contrĂŽler les raccourcis clavier dans le fichier inputrc est simple. Tout ce qui est nĂ©cessaire est le nom de la commande ou le texte dâune macro et la suite de touches Ă laquelle il faut lâassocier. Les noms de touches peuvent ĂȘtre indiquĂ©s de lâune des deux façons : comme un nom de touche symbolique, Ă©ventuellement prĂ©cĂ©dĂ© des prĂ©fixes Meta- ou Control- ou sous forme dâune suite de touches.
En utilisant la forme touche : nom_de_fonction ou macro , touche est le nom de la touche en anglais. Par exemple :
Control-u:
universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> sortie"
Dans lâexemple ci-dessus, C-u est associĂ© Ă la fonction universal-argument , M-DEL Ă la fonction backward-kill-word et C-o Ă lâexĂ©cution de la macro exprimĂ©e dans la partie gauche (câest-Ă -dire, insĂ©rer le texte ââ> outputââ sur la ligne).
Avec la seconde forme, "touches" : nom_de_fonction ou macro , touches diffĂšre de touche ci-dessus en ce que les chaĂźnes notant une suite complĂšte de touches peuvent ĂȘtre indiquĂ©es en plaçant la suite entre guillemets doubles. Certaines suites de touches dâĂ©chappement dans le style GNU Emacs peuvent ĂȘtre utilisĂ©es, comme dans lâexemple suivant, mais les noms de caractĂšres symboliques ne sont pas reconnus.
"\C-u":
universal-argument
"\C-x\C-r": re-read-init-file
"\e[11Ë": "Function Key 1"
Dans cet exemple, C-u est Ă nouveau associĂ© Ă la fonction universal-argument , C-x C-r Ă la fonction re-read-init-file et ESC [ 1 1 Ë Ă lâinsertion du texte ââFunction Key 1ââ.
Le jeu complet des suites de caractÚres de protection du style GNU Emacs est :
|
\C- |
préfixe ContrÎle ; |
|||
|
\M- |
préfixe Méta ; |
|||
|
\e |
caractÚre de protection ; |
|||
|
\\ |
contre-oblique ; |
|||
|
\" |
un guillemet " littéral ; |
|||
|
\' |
un guillemet ' littéral. |
En plus des suites de caractÚres de protection dans le style GNU Emacs, un second jeu de suites de caractÚres de protection par contre-obliques est disponible :
|
\a |
alerte (alarme)Â ; |
||
|
\b |
espace arriĂšre |
||
|
\d |
delete |
||
|
\f |
saut de page (« form feed ») ; |
||
|
\n |
changement de ligne ; |
||
|
\r |
retour chariot |
||
|
\t |
tabulation horizontale |
||
|
\v |
tabulation verticale |
||
|
\ nnn |
le caractĂšre 8Â bits dont la valeur octale est nnn (un Ă trois chiffres)Â ; |
||
|
\x HH |
le caractÚre 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ; |
Lorsquâon saisit le texte dâune macro, il faut utiliser des guillemets simples ou doubles pour indiquer la dĂ©finition de la macro. Les textes non protĂ©gĂ©s sont considĂ©rĂ©s comme des noms de fonctions. Dans le corps de la macro, les protections par contre-oblique dĂ©crites ci-dessus sont dĂ©veloppĂ©es. La contre-oblique protĂ©gera tout autre caractĂšre dans le texte de la macro, y compris " et '.
Bash permet dâafficher ou de modifier les raccourcis clavier readline avec la commande interne bind . On peut basculer dâun mode dâĂ©dition Ă lâautre en mode interactif en utilisant lâoption -o de la commande interne set (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Variables de readline
Readline dispose de variables permettant de personnaliser encore plus son comportement. Une variable peut ĂȘtre configurĂ©e dans le fichier inputrc avec une affectation de la forme
set nom_de_variable valeur
ou utilisant la commande interne bind (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous).
Sauf indication
contraire, les variables de readline prennent les valeurs
On
ou
Off
(la casse étant sans
importance). Les noms de variables non reconnues sont
ignorĂ©s. Lorsquâune valeur de variable est lue,
les variables vides ou de valeur NULL,
« on » (insensible à la casse)
et « 1 » sont équivalentes
Ă
On
. Toutes les autres valeurs sont
Ă©quivalentes Ă
Off
. Les variables et
leurs valeurs par défaut, sont :
active-region-start-color
Une variable de chaĂźne qui contrĂŽle la couleur du texte et du fond lors de lâaffichage du texte dans la zone active (consultez la description de enable-active-region ci-dessous). Cette chaĂźne ne doit pas occuper lâemplacement dâun caractĂšre physique quelconque sur lâaffichage, aussi elle devrait consister uniquement en sĂ©quences dâĂ©chappement du terminal. Elle est envoyĂ©e au terminal avant lâaffichage du texte dans la zone active. Cette variable est remise Ă sa valeur par dĂ©faut chaque fois que le type de terminal change. La valeur par dĂ©faut est la chaĂźne qui place le terminal en mode standout tel quâobtenu Ă partir de la description terminfo du terminal. Cette valeur pourrait ĂȘtre par exemple "\e[01;33m".
active-region-end-color
Une variable de chaĂźne qui « annule » les effets de active-region-start-color et rĂ©tablit lâapparence « normale » de lâaffichage du terminal aprĂšs lâaffichage de texte dans la zone active. Cette chaĂźne ne doit pas occuper lâemplacement dâun caractĂšre physique quelconque sur lâaffichage, aussi elle devrait consister uniquement en sĂ©quences dâĂ©chappement du terminal. Elle est envoyĂ©e au terminal aprĂšs lâaffichage du texte dans la zone active. Cette variable est remise Ă sa valeur par dĂ©faut chaque fois que le type de terminal change. La valeur par dĂ©faut est la chaĂźne qui rĂ©tablit le terminal Ă partir du mode standout tel quâobtenu Ă partir de la description terminfo du terminal. Cette valeur pourrait ĂȘtre par exemple "\e[0m".
bell-style (audible)
Cette variable commande readline lorsquâil faut dĂ©clencher lâalarme du terminal. Si configurĂ©e Ă none , readline nâĂ©met jamais dâalarme. Si configurĂ©e Ă visible , readline utilise une alarme visuelle sâil y en a une disponible. Si configurĂ©e Ă audible , readline essaie de faire sonner lâalarme du terminal.
bind-tty-special-chars (On)
Si configurĂ©e Ă On , readline tente dâassocier les caractĂšres de contrĂŽle traitĂ©s spĂ©cialement par le pilote de terminal du noyau Ă leurs Ă©quivalents readline.
blink-matching-paren (Off)
Si configurĂ©e Ă On , readline tente de dĂ©placer briĂšvement le curseur vers une parenthĂšse ouvrante lors de lâinsertion dâune parenthĂšse fermante.
colored-completion-prefix (Off)
Si configurĂ©e Ă On , lors du listage des complĂštements, readline affiche le prĂ©fixe commun du jeu des complĂštements possibles en utilisant une couleur diffĂ©rente. Les dĂ©finitions de couleur sont prises selon la valeur de la variable dâenvironnement LS_COLORS . Sâil y a une dĂ©finition de couleur dans $LS_COLORS pour le suffixe personnalisĂ© « readline-colored-completion-prefix », readline utilise cette couleur pour le suffixe commun plutĂŽt que la valeur par dĂ©faut.
colored-stats (Off)
Si configurĂ©e Ă On , readline affiche les complĂštements possibles en utilisant des couleurs diffĂ©rentes pour indiquer leur type de fichier. Les dĂ©finitions de couleur sont prises dans la valeur de la variable dâenvironnement LS_COLORS .
comment-begin (« # »)
Cette chaßne est insérée quand la commande readline insert-comment est exécutée. Cette commande est associée à M-# en mode Emacs et à # en mode de commande vi.
completion-display-width (-1)
Le nombre de colonnes dâĂ©cran utilisĂ©es pour afficher de possibles correspondances lors de la rĂ©alisation du complĂštement. La valeur est ignorĂ©e si elle est infĂ©rieure Ă 0 ou supĂ©rieure Ă la largeur de lâĂ©cran du terminal. Une valeur de 0 fera que les correspondances seront affichĂ©es une par ligne. La valeur par dĂ©faut est -1 .
completion-ignore-case (Off)
Si configurée à On , readline effectue les correspondances et complÚtements de noms de fichiers sans tenir compte de la casse.
completion-map-case (Off)
Si configurĂ©e Ă On et completion-ignore-case activĂ©e, readline traite les traits dâunion ( - ) et les tirets bas ( _ ) comme Ă©quivalents lorsquâelle rĂ©alise une recherche de correspondance et un complĂštement de nom de fichier insensibles Ă la casse.
completion-prefix-display-length (0)
La longueur, en caractĂšres, du prĂ©fixe commun dâune liste de complĂštements possibles affichĂ© sans modification. Si configurĂ©e en valeur positive, les prĂ©fixes communs plus longs que cette valeur sont remplacĂ©s par une ellipse lors de lâaffichage des complĂštements possibles.
completion-query-items (100)
Cela dĂ©termine quand lâutilisateur est interrogĂ© pour voir le nombre de complĂštements possibles produits par la commande possible-completions . Elle peut ĂȘtre configurĂ©e Ă toute valeur entiĂšre positive. Si le nombre de complĂštements possibles est supĂ©rieur ou Ă©gal Ă la valeur de cette variable, readline demandera Ă lâutilisateur sâil veut ou non les voir ; sinon, ils sont simplement affichĂ©s sur le terminal. Une valeur zĂ©ro signifie que readline ne demandera jamais ; des valeurs nĂ©gatives sont traitĂ©es comme un zĂ©ro.
convert-meta (On)
Si configurĂ©e Ă On , readline transformera les caractĂšres avec leur huitiĂšme bit rĂ©glĂ© Ă une suite de caractĂšres ASCII en supprimant le huitiĂšme bit et en prĂ©fixant un caractĂšre de protection (en fait, en utilisant le caractĂšre de protection comme prĂ©fixe mĂ©ta ). La configuration par dĂ©faut est On , mais readline la fixe Ă Off si le paramĂštre linguistique rĂ©gional contient des caractĂšres 8 bits. Cette variable dĂ©pend du paramĂštre linguistique rĂ©gional LC_CTYPE et peut ĂȘtre modifiĂ©e si le paramĂštre linguistique rĂ©gional est changĂ©.
disable-completion (Off)
Si configurĂ©e Ă On , readline empĂȘchera le complĂštement des mots. Les caractĂšres de complĂštement seront insĂ©rĂ©s sur la ligne comme sâils avaient Ă©tĂ© associĂ©s Ă self-insert .
echo-control-characters (On)
Si configurĂ©e Ă On , sur les systĂšmes dâexploitation le permettant, readline affiche un caractĂšre correspondant Ă un signal provenant du clavier.
editing-mode (emacs)
Commande si readline doit dĂ©marrer avec des raccourcis clavier similaires Ă Emacs ou Ă vi . editing-mode peut ĂȘtre positionnĂ© soit Ă emacs , soit Ă vi .
emacs-mode-string (@)
Si la variable show-mode-in-prompt est activĂ©e, cette chaĂźne est affichĂ©e immĂ©diatement avant la derniĂšre ligne de la premiĂšre invite quand le mode Ă©dition dâEmacs est activĂ©. La valeur est dĂ©veloppĂ©e comme un raccourci clavier, donc le jeu standard de prĂ©fixes meta- ou Control- et de sĂ©quences de protections par contre-oblique est disponible. Utiliser les caractĂšres de protection \1 et \2 pour ouvrir et fermer les sĂ©quences de caractĂšres non imprimables, ce qui peut ĂȘtre utilisĂ© pour inclure une suite de caractĂšres de contrĂŽle du terminal dans la chaĂźne de mode.
enable-active-region (On)
Le curseur (« point ») correspond Ă la position actuelle du curseur et la marque correspond Ă une position de curseur sauvegardĂ©e. Le texte entre le curseur et la marque est dĂ©signĂ© comme la zone . Quand cette variable est rĂ©glĂ©e Ă On , readline permet Ă certaines commandes de dĂ©signer la zone comme active . Quand la zone est active, readline surligne le texte en utilisant la valeur de active-region-start-color qui est par dĂ©faut la chaĂźne qui active le mode standout du terminal. La rĂ©gion active montre le texte insĂ©rĂ© par collage spĂ©cial ( bracketed-paste ) et tout texte correspondant trouvĂ© lors de recherches incrĂ©mentales et non-incrĂ©mentales dans lâhistorique.
enable-bracketed-paste (On)
Quand configurĂ©e Ă On , readline configurera le terminal pour pouvoir insĂ©rer chaque collage dans le tampon dâĂ©dition comme une chaĂźne de caractĂšres uniques, plutĂŽt que de traiter chaque caractĂšre comme sâil avait Ă©tĂ© lu du clavier. Cela empĂȘche readline dâexĂ©cuter toute commande dâĂ©dition liĂ©e Ă des suites de touches apparaissant dans le texte collĂ©.
enable-keypad (Off)
Quand configurĂ©e Ă On , readline essayera dâactiver le pavĂ© numĂ©rique de lâapplication une fois appelĂ©e. Sur certains systĂšmes, câest nĂ©cessaire pour utiliser les flĂšches.
enable-meta-key (On)
Quand configurĂ©e Ă On , readline essayera dâactiver toutes les touches de modificateur MĂ©ta que le terminal peut prendre en charge une fois appelĂ©. Sur de nombreux terminaux, la touche MĂ©ta est utilisĂ©e pour saisir des caractĂšres sur huit bits.
expand-tilde (Off)
Si configurée à On , le développement du tilde est effectué lorsque readline tente un complÚtement de commandes.
history-preserve-point (Off)
Si configurĂ©e Ă On , le programme dâhistorique tente de placer le curseur au mĂȘme endroit sur chaque ligne dâhistorique rĂ©cupĂ©rĂ©e avec previous-history ou next-history .
history-size (unset)
Configure le nombre maximal dâĂ©lĂ©ments sauvegardĂ©s dans la file de lâhistorique. Si configurĂ© Ă zĂ©ro, tous les Ă©lĂ©ments sont effacĂ©s et aucun nouvel Ă©lĂ©ment nâest sauvegardĂ©. Si configurĂ© Ă une valeur strictement nĂ©gative, le nombre dâĂ©lĂ©ments de la file dâhistorique nâest pas limitĂ©. Par dĂ©faut, le nombre dâĂ©lĂ©ments est configurĂ© Ă la valeur de la variable HISTSIZE de lâinterprĂ©teur. En cas de tentative de rĂ©gler history-size Ă une valeur non numĂ©rique, le nombre maximal dâĂ©lĂ©ments est configurĂ© Ă Â 5OO.
horizontal-scroll-mode (Off)
Quand configurĂ©e Ă On , readline utilisera une seule ligne dâaffichage et fera dĂ©filer la saisie horizontalement sur une seule ligne dâĂ©cran quand elle devient plus longue que la largeur de lâĂ©cran, plutĂŽt que de faire un retour Ă la ligne. Ce rĂ©glage est activĂ© automatiquement pour les terminaux de hauteur 1 .
input-meta (Off)
Si configurĂ©e Ă On , readline acceptera des saisies sur huit bits (autrement dit il ne supprimera pas le huitiĂšme bit), quel que soit le terminal utilisĂ©. Le nom meta-flag est un synonyme pour cette variable. La configuration par dĂ©faut est Off , mais readline la fixe Ă On si le paramĂštre linguistique rĂ©gional contient des caractĂšres 8 bits. Cette variable dĂ©pend du paramĂštre linguistique rĂ©gional LC_CTYPE et peut ĂȘtre modifiĂ©e si le paramĂštre linguistique rĂ©gional est changĂ©.
isearch-terminators (« C-[C-J »)
La chaĂźne de caractĂšres qui doit terminer une recherche incrĂ©mentale sans que le caractĂšre ne soit exĂ©cutĂ© comme une commande. Si cette variable nâa pas reçu de valeur, les caractĂšres ESC et C-J termineront une recherche incrĂ©mentale.
keymap (emacs)
Configure le jeu de raccourcis readline actuel. Lâensemble des noms corrects de jeux de raccourcis est emacs , emacs-standard , emacs-meta , emacs-ctlx , vi , vi-command et vi-insert . vi est Ă©quivalent Ă vi-command ; emacs est Ă©quivalent Ă emacs-standard . La valeur par dĂ©faut est emacs ; la valeur de editing-mode modifie aussi le jeu de raccourcis par dĂ©faut.
keyseq-timeout (500)
Indique le temps que readline attendra un caractĂšre lors de la lecture dâune suite de touches ambiguĂ« (câest-Ă -dire qui peut former une suite de touches complĂšte en utilisant lâentrĂ©e lue jusquâĂ prĂ©sent, ou accepter une entrĂ©e supplĂ©mentaire pour complĂ©ter une suite de touches plus longue). Si aucune entrĂ©e nâest reçue pendant le temps dâattente, readline utilisera la suite la plus courte, mais complĂšte. La valeur est indiquĂ©e en milliseconde, donc une valeur de 1000 signifie que readline attendra pendant une seconde une entrĂ©e supplĂ©mentaire. Si cette variable est configurĂ©e Ă une valeur infĂ©rieure ou Ă©gale Ă zĂ©ro, ou Ă une valeur non numĂ©rique, readline attendra la saisie dâune autre touche pour dĂ©cider de la suite de touches Ă complĂ©ter.
mark-directories (On)
Si configurée à On , une barre oblique est ajoutée aux noms de répertoires.
mark-modified-lines (Off)
Si configurĂ©e Ă On , les lignes dâhistorique qui ont Ă©tĂ© modifiĂ©es seront prĂ©cĂ©dĂ©es Ă lâaffichage dâun astĂ©risque ( * ).
mark-symlinked-directories (Off)
Si configurée à On , une barre oblique est ajoutée aux noms complétés si ce sont des liens symboliques vers des répertoires (selon la valeur de mark-directories ).
match-hidden-files (On)
Cette variable, quand elle est configurĂ©e Ă On , conduit readline Ă faire correspondre des fichiers dont le nom commence par un « . » (fichiers cachĂ©s) lors du complĂštement de noms de fichiers. Si configurĂ©e Ă Off , le « . » du dĂ©but doit ĂȘtre fourni par lâutilisateur dans le nom de fichier Ă complĂ©ter.
menu-complete-display-prefix (Off)
Si configurĂ©e Ă On , le complĂštement de menu affiche le prĂ©fixe commun Ă la liste de complĂštements possibles (qui peut ĂȘtre vide) avant de tourner dans la liste.
output-meta (Off)
Si configurĂ©e Ă On , readline affichera directement les caractĂšres ayant leur huitiĂšme bit dĂ©fini plutĂŽt que dâutiliser une suite de caractĂšres de protection avec prĂ©fixe mĂ©ta. La configuration par dĂ©faut est Off , mais readline la fixe Ă On si le paramĂštre linguistique rĂ©gional contient des caractĂšres 8 bits. Cette variable dĂ©pend du paramĂštre linguistique rĂ©gional LC_CTYPE et peut ĂȘtre modifiĂ©e si le paramĂštre linguistique rĂ©gional est changĂ©.
page-completions (On)
Si configurée à On , readline utilise un afficheur de texte interne du type more pour afficher les complÚtements possibles sur un seul plein écran.
print-completions-horizontally (Off)
Si configurĂ©e Ă On , readline affichera les complĂštements correspondants triĂ©s horizontalement dans lâordre alphabĂ©tique plutĂŽt que verticalement.
revert-all-at-newline (Off)
Si configurĂ©e Ă On , readline annulera toutes les modifications des lignes dâhistorique avant de sâarrĂȘter quand accept-line est exĂ©cutĂ©. Par dĂ©faut les lignes dâhistorique peuvent ĂȘtre modifiĂ©es et conservent les listes dâannulation individuelles au fur et Ă mesure des appels Ă readline .
show-all-if-ambiguous (Off)
Cela modifie le comportement par dĂ©faut des fonctions de complĂštement. Si configurĂ©e Ă On , les mots qui ont plus dâun complĂštement possibles conduisent Ă lâaffichage immĂ©diat des correspondances plutĂŽt quâĂ lâĂ©mission dâune alarme.
show-all-if-unmodified (Off)
Cela modifie le comportement par dĂ©faut des fonctions de complĂštement de façon similaire Ă show-all-if-ambiguous . Si configurĂ©e Ă On , les mots qui ont plus dâun complĂštement possible sans aucun complĂštement partiel possible (les complĂštements possibles ne partagent pas de prĂ©fixe commun) conduisent Ă lâaffichage immĂ©diat des correspondances plutĂŽt quâĂ lâĂ©mission dâune alarme.
show-mode-in-prompt (Off)
Si configurĂ©e Ă On , ajoute une chaĂźne au dĂ©but de lâinvite indiquant le mode dâĂ©dition : Emacs, commande Vi ou insertion Vi. Lâutilisateur peut configurer la chaĂźne de mode (par exemple, emacs-mode-string ).
skip-completed-text (Off)
Si configurĂ©e Ă On , modifie le comportement par dĂ©faut du complĂštement lors de lâinsertion dâune unique correspondance dans la ligne. Elle nâest utilisĂ©e que lors dâun complĂštement effectuĂ© au milieu dâun mot. Si elle est activĂ©e, readline nâinsĂšre pas de caractĂšres de complĂštement correspondant Ă des caractĂšres situĂ©s aprĂšs le curseur dans le mot en train dâĂȘtre complĂ©tĂ©, ainsi les parties du mots situĂ©es aprĂšs le curseur ne sont pas dupliquĂ©es.
vi-cmd-mode-string ((cmd))
Si la variable show-mode-in-prompt est activĂ©e, cette chaĂźne est affichĂ©e immĂ©diatement avant la derniĂšre ligne de la premiĂšre invite quand le mode dâĂ©dition de vi est activĂ© et en mode commande. La valeur est dĂ©veloppĂ©e comme un raccourci clavier, donc le jeu standard de prĂ©fixes meta- ou Control- et de sĂ©quences de protections par contre-oblique est disponible. Utiliser les caractĂšres de protection \1 et \2 pour ouvrir et fermer les sĂ©quences de caractĂšres non imprimables, ce qui peut ĂȘtre utilisĂ© pour inclure une suite de caractĂšres de contrĂŽle du terminal dans la chaĂźne de mode.
vi-ins-mode-string ((ins))
Si la variable show-mode-in-prompt est activĂ©e, cette chaĂźne est affichĂ©e immĂ©diatement avant la derniĂšre ligne de la premiĂšre invite quand le mode dâĂ©dition de vi est activĂ© et en mode insertion. La valeur est dĂ©veloppĂ©e comme un raccourci clavier, donc le jeu standard de prĂ©fixes meta- ou Control- et de sĂ©quences de protections par contre-oblique est disponible. Utiliser les caractĂšres de protection \1 et \2 pour ouvrir et fermer les sĂ©quences de caractĂšres non imprimables, ce qui peut ĂȘtre utilisĂ© pour inclure une suite de caractĂšres de contrĂŽle du terminal dans la chaĂźne de mode.
visible-stats (Off)
Si configurée à On , un caractÚre indiquant le type de fichier, comme signalé par stat (2) est ajouté aux noms de fichiers en affichant les complÚtements possibles.
Constructions conditionnelles de readline
Readline implĂ©mente un mĂ©canisme inspirĂ© des fonctionnalitĂ©s de compilation conditionnelle du prĂ©processeur C qui permet dâeffectuer le paramĂ©trage des raccourcis clavier et des variables selon les rĂ©sultats de tests. Il y a quatre directives dâanalyse utilisĂ©es.
|
$if |
La structure $if permet de choisir les raccourcis selon le mode dâĂ©dition, le terminal utilisĂ© ou lâapplication utilisant readline. Le texte du test, aprĂšs nâimporte quel opĂ©rateur de comparaison, va jusquâĂ la fin de la ligne ; sauf notation contraire, aucun caractĂšre nâest nĂ©cessaire pour le dĂ©limiter. |
mode
|
La forme mode= de la directive $if est utilisĂ©e pour vĂ©rifier si readline est en mode emacs ou vi. Cela peut ĂȘtre utilisĂ© conjointement Ă la commande set keymap , par exemple pour ne configurer les raccourcis des jeux de raccourcis emacs-standard et emacs-ctlx que si readline dĂ©marre en mode emacs. |
|||
|
term |
La forme term= peut ĂȘtre utilisĂ©e pour ajouter des raccourcis clavier spĂ©cifiques au terminal, comme associer des suites de touches produites par des touches de fonction du terminal. Le mot Ă droite du signe = est comparĂ© Ă la fois au nom complet du terminal et Ă la portion de nom du terminal qui prĂ©cĂšde le premier signe - . Cela permet, par exemple, de faire correspondre sun avec Ă la fois sun et sun-cmd . |
version
Le test de version peut ĂȘtre utilisĂ© pour effectuer des comparaisons avec des versions particuliĂšres de readline. La version est dĂ©veloppĂ©e selon la version actuelle de readline. Lâensemble dâopĂ©rateurs de comparaison inclut = , (et == ), != , <= , >= , < et > . Le numĂ©ro de version fourni Ă droite de lâopĂ©rateur consiste en un numĂ©ro de version majeure, un point dĂ©cimal facultatif et un numĂ©ro de version mineure facultatif (par exemple, 7.1 ). Si la version mineure est omise, on considĂšre que câest 0 . LâopĂ©rateur peut ĂȘtre sĂ©parĂ© de la chaĂźne version et de lâargument du numĂ©ro de version par une espace.
application
La structure application est utilisĂ©e pour inclure des paramĂ©trages spĂ©cifiques Ă chaque application. Chaque programme utilisant la bibliothĂšque readline configure un nom dâapplication et un fichier dâinitialisation peut tester une valeur particuliĂšre. Ce peut ĂȘtre utilisĂ© pour associer des suites de touches Ă des fonctions utiles pour un certain programme. Par exemple, les commandes suivantes ajoutent une suite de touches qui protĂšge le mot actuel ou prĂ©cĂ©dant dans bash :
$if
Bash
# Protéger le mot actuel ou le
précédant
"\C-xq": "\eb\"\ef\""
$endif
variable
La structure variable fournit des tests dâĂ©galitĂ© simples pour les variables et les valeurs de readline. Les opĂ©rateurs de comparaison permis sont = , == , et != . Le nom de la variable doit ĂȘtre sĂ©parĂ© de lâopĂ©rateur par une espace ; lâopĂ©rateur peut ĂȘtre sĂ©parĂ© de la valeur Ă droite par une espace. Les variables de chaĂźne ainsi que les variables boolĂ©ennes peuvent ĂȘtre testĂ©es. Les variables boolĂ©ennes doivent ĂȘtre comparĂ©es aux valeurs on et off .
|
$endif |
Cette commande, comme on lâa vu dans lâexemple ci-dessus, termine une commande $if . |
||
|
$else |
Permet dâajouter des commandes qui seront exĂ©cutĂ©es si un $if Ă©choue. |
$include
Cette directive prend un seul nom de fichier comme argument et y lit les commandes et les raccourcis. Par exemple, la directive suivante lirait le fichier /etc/inputrc :
$include /etc/inputrc
Recherche
Readline fournit des commandes de recherche au sein de lâhistorique de commandes (consultez HISTORIQUE ci-dessous) des lignes contenant une chaĂźne donnĂ©e. Il y a deux modes de recherche : incrĂ©mental et non incrĂ©mental .
Les recherches incrĂ©mentales commencent avant mĂȘme que lâutilisateur nâait terminĂ© de saisir la chaĂźne recherchĂ©e. Ă chaque caractĂšre saisi, readline affiche lâĂ©lĂ©ment suivant de lâhistorique qui correspond Ă la chaĂźne dĂ©jĂ entrĂ©e. Une recherche incrĂ©mentale nĂ©cessite seulement le nombre de caractĂšres indispensable pour retrouver lâĂ©lĂ©ment dâhistorique dĂ©sirĂ©. Les caractĂšres se trouvant dans la variable isearch-terminators servent Ă terminer une recherche incrĂ©mentale. Si aucune valeur nâa Ă©tĂ© affectĂ©e Ă cette variable, les caractĂšres Ăchappement (« Escape ») et ContrĂŽle-J terminent une recherche incrĂ©mentale. ContrĂŽle-G permet dâinterrompre une recherche incrĂ©mentale et de restaurer la ligne originale. Lorsque la recherche est finie, lâĂ©lĂ©ment dâhistorique contenant la chaĂźne dĂ©sirĂ©e devient la ligne actuelle.
Pour trouver les autres Ă©lĂ©ments correspondant dans la file dâhistorique, saisissez selon ContrĂŽle-S ou ContrĂŽle-R. Cela recherchera en avant ou en arriĂšre dans lâhistorique lâĂ©lĂ©ment suivant correspondant Ă la chaĂźne saisie jusque-lĂ . Toute autre suite de touches associĂ©e Ă une commande readline interrompra la recherche et exĂ©cutera la commande. Par exemple, un changement de ligne interrompra la recherche et acceptera la ligne, exĂ©cutant ainsi la commande de la file dâhistorique.
Readline se souvient de la derniÚre chaßne de recherche incrémentale. Si deux ContrÎle-R sont tapés sans caractÚre pour définir une nouvelle recherche de chaßne, toute chaßne mémorisée sera utilisée.
Les recherches non incrĂ©mentales lisent la chaĂźne dĂ©sirĂ©e en entier avant de dĂ©marrer la recherche de correspondance dans la file dâhistorique. La chaĂźne peut ĂȘtre saisie par lâutilisateur ou faire partie du contenu de la ligne actuelle.
Noms des commandes readline
Ce qui suit est une liste des noms de commandes et les suites de touches auxquelles elles sont associées par défaut. Les noms de commandes sans suite de touche les accompagnant ne sont pas associées par défaut. Dans les descriptions suivantes, le curseur (« point ») se rapporte à la position actuelle du curseur et la marque se rapporte à une position de curseur sauvegardée par la commande set-mark . Le texte entre le curseur et la marque est désigné comme la zone .
Commandes de déplacement
beginning-of-line (C-a)
Reculer au début de la ligne actuelle.
end-of-line (C-e)
Avancer Ă la fin de la ligne.
forward-char (C-f)
Avancer dâun caractĂšre.
backward-char (C-b)
Reculer dâun caractĂšre.
forward-word (M-f)
Avancer jusquâĂ la fin du mot suivant. Les mots sont composĂ©s de caractĂšres alphanumĂ©riques (lettres et chiffres).
backward-word (M-b)
Reculer jusquâau dĂ©but du mot actuel ou du prĂ©cĂ©dent. Les mots sont composĂ©s de caractĂšres alphanumĂ©riques (lettres et chiffres).
shell-forward-word
Avancer jusquâĂ la fin du mot suivant. Les mots sont sĂ©parĂ©s par des mĂ©tacaractĂšres non protĂ©gĂ©s de lâinterprĂ©teur.
shell-backward-word
Reculer jusquâau dĂ©but du mot actuel ou du prĂ©cĂ©dent. Les mots sont sĂ©parĂ©s par des mĂ©tacaractĂšres non protĂ©gĂ©s de lâinterprĂ©teur.
previous-screen-line
Tenter de dĂ©placer le curseur vers la mĂȘme colonne physique de lâĂ©cran sur la ligne physique prĂ©cĂ©dente de lâĂ©cran. Cela nâaura pas lâeffet dĂ©sirĂ© si la ligne actuelle de readline nâaccepte pas sur dâune ligne physique ou si le but nâest pas supĂ©rieur Ă la longueur de lâinvite plus la largeur de lâĂ©cran.
next-screen-line
Tenter de dĂ©placer le curseur vers la mĂȘme colonne de lâĂ©cran physique sur la ligne suivante de lâĂ©cran physique. Cela nâaura pas lâeffet dĂ©sirĂ© si la ligne actuelle de readline nâaccepte pas plus dâune ligne physique ou si la longueur de la ligne actuelle de readline nâest pas supĂ©rieure Ă la longueur de lâinvite plus la largeur de lâĂ©cran.
clear-display (M-C-l)
Effacer lâĂ©cran et, si possible, le tampon de dĂ©filement du terminal, puis rafraĂźchir la ligne actuelle, en laissant la ligne actuelle au sommet de lâĂ©cran.
clear-screen (C-l)
Effacer lâĂ©cran, puis rafraĂźchir la ligne actuelle, en laissant la ligne actuelle au sommet de lâĂ©cran. Sâil y a un argument, rafraĂźchir la ligne actuelle sans effacer lâĂ©cran.
redraw-current-line
RafraĂźchir la ligne actuelle.
Commandes de manipulation de lâhistorique
accept-line (changement de ligne, retour chariot)
Valider la ligne, sans se soucier de lâemplacement du curseur. Si la ligne nâest pas vide, lâajouter Ă la file dâhistorique, sous contrĂŽle de la variable HISTCONTROL . Si cette ligne est une ligne dâhistorique modifiĂ©e, restaurer cette derniĂšre.
previous-history (C-p)
RĂ©cupĂ©rer la commande prĂ©cĂ©dente de la file dâhistorique, en remontant dans la file.
next-history (C-n)
RĂ©cupĂ©rer la commande suivante dans la file dâhistorique, en descendant dans la file.
beginning-of-history (M-<)
RĂ©cupĂ©rer la premiĂšre ligne de lâhistorique.
end-of-history (M->)
Retourner Ă la fin de lâhistorique de saisie, câest-Ă -dire Ă la ligne en cours de saisie.
operate-and-get-next (C-o)
Valider la ligne actuelle pour exĂ©cution et rĂ©cupĂ©rer de lâhistorique la ligne suivante liĂ©e Ă la ligne actuelle pour Ă©dition. Si un argument numĂ©rique est fourni, il spĂ©cifie lâentrĂ©e de lâhistorique Ă utiliser Ă la place de la ligne actuelle.
fetch-history
Avec argument numĂ©rique, rĂ©cupĂ©rer cette entrĂ©e de la file dâhistorique et en faire la ligne actuelle. Sans argument, revenir Ă la premiĂšre entrĂ©e de la file dâhistorique.â
reverse-search-history (C-r)
Rechercher en arriĂšre dans lâhistorique, en remontant. Câest une recherche incrĂ©mentale.
forward-search-history (C-s)
Rechercher en avant dans lâhistorique, en descendant. Câest une recherche incrĂ©mentale.
non-incremental-reverse-search-history (M-p)
Rechercher une chaĂźne en arriĂšre dans lâhistorique, en remontant depuis la ligne actuelle, utiliser une recherche non incrĂ©mentale pour une chaĂźne fournie par lâutilisateur.
non-incremental-forward-search-history (M-n)
Rechercher une chaĂźne en avant dans lâhistorique, utiliser une recherche non incrĂ©mentale pour une chaĂźne fournie par lâutilisateur.
history-search-forward
Rechercher en avant dans lâhistorique la chaĂźne comprise entre le dĂ©but de la ligne actuelle et la position du curseur. Câest une recherche non incrĂ©mentale.
history-search-backward
Rechercher en arriĂšre dans lâhistorique la chaĂźne comprise entre le dĂ©but de la ligne actuelle et la position du curseur. Câest une recherche non incrĂ©mentale.
history-substring-search-backward
Rechercher en arriĂšre dans lâhistorique la chaĂźne comprise entre le dĂ©but de la ligne actuelle et la position du curseur. La chaĂźne recherchĂ©e peut trouver une correspondance nâimporte oĂč dans une ligne de lâhistorique. Câest une recherche non incrĂ©mentale.
history-substring-search-forward
Rechercher en avant dans lâhistorique la chaĂźne comprise entre le dĂ©but de la ligne actuelle et la position du curseur. La chaĂźne recherchĂ©e peut trouver une correspondance nâimporte oĂč dans une ligne de lâhistorique. Câest une recherche non incrĂ©mentale.
yank-nth-arg (M-C-y)
InsĂ©rer, Ă lâemplacement du curseur, le premier argument de la commande prĂ©cĂ©dente. GĂ©nĂ©ralement, il sâagit du second mot de la ligne prĂ©cĂ©dente. Avec un argument n , insĂ©rer le n -iĂšme mot de la commande prĂ©cĂ©dente (les mots sont numĂ©rotĂ©s Ă partir de 0 ). Un argument nĂ©gatif insĂšre le n -iĂšme mot en partant de la fin de la commande prĂ©cĂ©dente. Une fois que lâargument n est traitĂ©, lâargument est extrait comme si le dĂ©veloppement dâhistorique « ! n » avait Ă©tĂ© indiquĂ©.
yank-last-arg (M-., M-_)
InsĂ©rer le dernier argument de la commande prĂ©cĂ©dente (le dernier mot de lâĂ©lĂ©ment prĂ©cĂ©dent de la file dâhistorique). Avec un argument numĂ©rique, se comporte exactement comme yank-nth-arg . Les appels successifs Ă yank-last-arg remontent dans la file dâhistorique en insĂ©rant le dernier mot (ou le mot indiquĂ© par lâargument du premier appel) de chaque ligne tour Ă tour. Tous les arguments numĂ©riques fournis Ă ces appels successifs dĂ©terminent la direction de dĂ©placement dans lâhistorique. Un argument nĂ©gatif modifie la direction dans lâhistorique (en avant ou en arriĂšre). Les outils de dĂ©veloppement dâhistorique sont utilisĂ©s pour extraire le dernier mot, comme si le dĂ©veloppement dâhistorique « !$ » avait Ă©tĂ© indiquĂ©.
shell-expand-line (M-C-e)
DĂ©velopper, comme le fait lâinterprĂ©teur, la ligne actuelle. Cela effectue le dĂ©veloppement des alias et dâhistorique, ainsi que tous les dĂ©veloppements de mot de lâinterprĂ©teur. Consultez ci-dessous DĂVELOPPEMENT DE LâHISTORIQUE , pour une description dĂ©taillĂ©e du dĂ©veloppement de lâhistorique.
history-expand-line (M-Ë)
Effectuer le dĂ©veloppement dâhistorique sur la ligne actuelle. Consultez ci-dessous DĂVELOPPEMENT DE LâHISTORIQUE , pour une description dĂ©taillĂ©e.
magic-space
Effectuer le dĂ©veloppement de lâhistorique sur la ligne actuelle et insĂ©rer une espace. Consultez ci-dessous DĂVELOPPEMENT DE LâHISTORIQUE , pour une description dĂ©taillĂ©e.
alias-expand-line
Effectuer le dĂ©veloppement des alias sur la ligne actuelle. Consultez ALIAS ci-dessus pour une description des dĂ©veloppements dâalias.
history-and-alias-expand-line
Effectuer le dĂ©veloppement de lâhistorique et des alias sur la ligne actuelle.
insert-last-argument (M-., M-_)
Un synonyme de yank-last-arg .
edit-and-execute-command (C-x C-e)
Appeler un Ă©diteur sur la ligne de commande actuelle et exĂ©cuter le rĂ©sultat comme une commande dâinterprĂ©teur. Bash tente dâappeler, dans cet ordre, $VISUAL , $EDITOR et emacs comme Ă©diteur.
Commande dâĂ©dition de texte
end-of-file (généralement C-d)
Le caractĂšre indiquant la fin de fichier, comme dĂ©fini, par exemple, par ââsttyââ. Si ce caractĂšre est lu alors quâaucun caractĂšre nâest sur la ligne, et que le curseur est au dĂ©but de la ligne, readline lâinterprĂšte comme le fin de lâentrĂ©e et renvoie EOF .
delete-char (C-d)
Effacer le caractĂšre sous le curseur. Si cette fonction est associĂ©e au mĂȘme caractĂšre que le caractĂšre EOF du terminal, comme câest souvent le cas avec C-d , consultez les effets dans le paragraphe prĂ©cĂ©dent.
backward-delete-char (Effacement ou « Rubout »)
Effacer le caractÚre avant le curseur. Lorsque un argument numérique est indiqué, le texte effacé est sauvegardé dans le tampon circulaire.
forward-backward-delete-char
Effacer le caractĂšre sous le curseur, sauf sâil est en fin de ligne, auquel cas le caractĂšre avant le curseur est effacĂ©.
quoted-insert (C-q, C-v)
Ajouter littĂ©ralement sur la ligne le caractĂšre saisi suivant. Cela permet dâinsĂ©rer des caractĂšres comme C-q , par exemple.
tab-insert (C-v TAB)
Insérer un caractÚre de tabulation.
self-insert (a, b, A, 1, !, ...)
Insérer le caractÚre mentionné.
transpose-chars (C-t)
Ăchanger les caractĂšres se trouvant devant et sous le curseur. Le curseur est avancĂ© dâun caractĂšre. Ă la fin dâune ligne, les caractĂšres Ă©changĂ©s sont les deux prĂ©cĂ©dents. Les arguments nĂ©gatifs nâont aucun effet.
transpose-words (M-t)
Déplace le mot avant le curseur au-delà du mot aprÚs le curseur et déplace aussi le curseur sur ce mot. Si le curseur est à la fin de la ligne, cela échange les deux derniers mots de la ligne.
upcase-word (M-u)
Transformer le mot actuel (ou le suivant) en majuscules. Avec un argument négatif, agir sur le mot précédent mais ne pas déplacer le curseur.
downcase-word (M-l)
Transformer le mot actuel (ou le suivant) en minuscules. Avec un argument négatif, agir sur le mot précédent mais ne pas déplacer le curseur.
capitalize-word (M-c)
Passer en majuscule lâinitiale du mot actuel (ou du suivant). Avec un argument nĂ©gatif, agir sur le mot prĂ©cĂ©dent mais ne pas dĂ©placer le curseur.
overwrite-mode
Basculer en mode dâĂ©crasement. Avec un argument numĂ©rique explicite strictement positif, bascule en mode dâĂ©crasement. Avec un argument numĂ©rique explicite nĂ©gatif ou nul, bascule en mode dâinsertion. Cette commande nâaffecte que le mode emacs ; le mode vi Ă©crase de façon diffĂ©rente. Chaque appel Ă readline() dĂ©marre en mode dâinsertion. En mode dâĂ©crasement, les caractĂšres associĂ©s Ă self-insert remplacent le texte sous le curseur plutĂŽt que de dĂ©placer le texte vers la droite. Les caractĂšres associĂ©s Ă backward-delete-char remplacent le caractĂšre avant le curseur par une espace. Par dĂ©faut, cette commande nâest pas associĂ©e.
Effacement et récupération
kill-line (C-k)
Effacer le texte depuis la position du curseur jusquâĂ la fin de la ligne.
backward-kill-line (C-x Effacement)
Effacer en arriĂšre jusquâau dĂ©but de ligne.
unix-line-discard (C-u)
Effacer le texte entre le début de la ligne et la position du curseur. Le texte est sauvegardé dans le tampon circulaire.
kill-whole-line
Effacer toute la ligne sans tenir compte de la position du curseur.
kill-word (M-d)
Effacer le texte entre le curseur et la fin du mot actuel ou, si entre des mots, jusquâĂ la fin du mot suivant. Les limites des mots sont identiques Ă celles utilisĂ©es par forward-word .
backward-kill-word (M-Effacement)
Effacer le mot sous le curseur. Les limites de mots sont identiques à celles utilisées par backward-word .
shell-kill-word
Effacer le texte entre le curseur et la fin du mot actuel ou, si entre des mots, jusquâĂ la fin du mot suivant. Les limites des mots sont identiques Ă celles utilisĂ©es par shell-forward-word .
shell-backward-kill-word
Effacer le mot sous le curseur. Les limites de mots sont identiques à celles utilisées par shell-backward-word .
unix-word-rubout (C-w)
Effacer le mot sous le curseur, en utilisant une espace blanche comme limite de mot. Le texte effacé est sauvegardé dans le tampon circulaire.
unix-filename-rubout
Effacer le mot sous le curseur, en utilisant lâespace blanche et la barre oblique comme limites de mot. Le texte supprimĂ© est sauvegardĂ© dans le tampon circulaire.
delete-horizontal-space (M-\)
Effacer toutes les espaces blanches et les tabulations autour du curseur.
kill-region
Effacer le texte de la zone actuelle.
copy-region-as-kill
Copier le texte de la zone vers le tampon circulaire.
copy-backward-word
Copier le mot précédant le curseur dans le tampon circulaire. Les limites de mots sont identiques à celles de backward-word .
copy-forward-word
Copier le mot suivant le curseur dans le tampon circulaire. Les limites de mots sont identiques Ă celles de forward-word .
yank (C-y)
Récupérer le texte au sommet du tampon circulaire à la position du curseur dans le tampon.
yank-pop (M-y)
ExĂ©cuter une rotation du tampon circulaire et rĂ©cupĂ©rer le texte situĂ© Ă son nouveau sommet. Cela ne fonctionne quâaprĂšs yank ou yank-pop .
Arguments numériques
digit-argument (M-0, M-1, ..., M--)
Ajouter ce chiffre Ă lâargument en cours de rĂ©daction ou crĂ©er un nouvel argument. M-- crĂ©e un argument nĂ©gatif.
universal-argument
Il sâagit dâune autre façon dâindiquer un argument. Si cette commande est suivie dâun ou plusieurs chiffres facultativement prĂ©cĂ©dĂ©s dâun signe moins, ces chiffres dĂ©finissent lâargument. Si la commande est suivie de chiffres, une nouvelle exĂ©cution de universal-argument termine lâargument numĂ©rique, mais est ignorĂ©e dans les autres cas. Par exception, si cette commande est suivie immĂ©diatement par un caractĂšre qui nâest ni un chiffre ni le signe moins, le compteur dâarguments de la commande suivante est multipliĂ© par 4. Le compteur dâarguments est initialement Ă un, donc la premiĂšre exĂ©cution de cette commande amĂšne le compteur dâarguments Ă quatre, une seconde fois porte le compteur dâarguments Ă seize et ainsi de suite.
ComplĂštement
complete (TAB)
Essayer dâeffectuer un complĂštement du texte situĂ© avant le curseur. Bash effectue le complĂštement en considĂ©rant tour Ă tour le texte comme une variable (sâil commence par $ ), un nom dâutilisateur (sâil commence par Ë ), un nom de machine (sâil commence par @ ) ou une commande (y compris les alias et les fonctions). Si aucun ne correspond, un complĂštement de nom de fichier est essayĂ©.
possible-completions (M-?)
Afficher les complÚtements possibles pour le texte situé avant le curseur.
insert-completions (M-*)
InsĂ©rer avant le curseur lâensemble des complĂštements qui auraient Ă©tĂ© produits par possible-completions .
menu-complete
Analogue Ă complete , mais en remplaçant le mot Ă complĂ©ter par une seule correspondance de la liste des complĂštements possibles. Des exĂ©cutions rĂ©pĂ©tĂ©es de menu-complete parcourent la liste des complĂštements possibles, en insĂ©rant chaque correspondance tour Ă tour. Ă la fin de la liste des complĂštements, une alarme est Ă©mise (selon la configuration de bell-style ) et le texte original est restaurĂ©. Un argument de n dĂ©place de n positions dans la liste des correspondances. Un argument nĂ©gatif peut ĂȘtre utilisĂ© pour revenir en arriĂšre dans la liste. Cette commande est destinĂ©e Ă ĂȘtre associĂ©e Ă la touche TAB , mais ne lâest pas par dĂ©faut.
menu-complete-backward
Identique Ă menu-complete , mais se dĂ©place en arriĂšre dans la liste des complĂštements possibles, comme si un argument nĂ©gatif avait Ă©tĂ© passĂ© Ă menu-complete . Cette commande nâest associĂ©e Ă aucune touche par dĂ©faut.
delete-char-or-list
Effacer le caractĂšre sous le curseur sauf au dĂ©but ou en fin de ligne (comme delete-char ). En fin de ligne, se comporte comme possible-completions . Cette commande nâest associĂ©e Ă aucune touche par dĂ©faut.
complete-filename (M-/)
Essayer le complÚtement des noms de fichiers sur le texte situé avant le curseur.
possible-filename-completions (C-x /)
Afficher les complÚtements possibles du texte situé avant le curseur, traité comme un nom de fichier.
complete-username (M-Ë)
Essayer le complĂštement sur le texte situĂ© avant le curseur, en le traitant comme un nom dâutilisateur.
possible-username-completions (C-x Ë)
Afficher les complĂštements possibles du texte situĂ© avant le curseur, en le traitant comme un nom dâutilisateur.
complete-variable (M-$)
Essayer le complĂštement sur le texte situĂ© avant le curseur, en le traitant comme une variable de lâinterprĂ©teur.
possible-variable-completions (C-x $)
Afficher les complĂštements possibles du texte situĂ© avant le curseur, en le traitant comme une variable de lâinterprĂ©teur.
complete-hostname (M-@)
Essayer le complÚtement sur le texte situé avant le curseur, en le traitant comme un nom de machine.
possible-hostname-completions (C-x @)
Afficher les complÚtements possibles du texte situé avant le curseur, en le traitant comme un nom de machine.
complete-command (M-!)
Essayer le complĂštement sur le texte situĂ© avant le curseur, en le traitant comme un nom de commande. Le complĂštement des commandes essaie de faire correspondre le texte, dans cet ordre, aux alias, mots rĂ©servĂ©s, fonctions de lâinterprĂ©teur, commandes internes de lâinterprĂ©teur et finalement les noms de fichiers exĂ©cutables.
possible-command-completions (C-x !)
Afficher les complÚtements possibles du texte situé avant le curseur, en le traitant comme un nom de commande.
dynamic-complete-history (M-TAB)
Essayer le complĂštement du texte situĂ© avant le curseur, en le comparant aux lignes de la file dâhistorique lui correspondant pour les complĂštements possibles.
dabbrev-expand
Essayer le menu de complĂštement du texte situĂ© avant le curseur, en le comparant aux lignes de la file dâhistorique lui correspondant pour les complĂštements possibles.
complete-into-braces (M-{)
Effectuer un complĂštement en noms de fichiers et insĂ©rer la liste des complĂštements possibles entre accolades afin que la liste soit exploitable par lâinterprĂ©teur (consultez DĂ©veloppement des accolades ci-dessus).
Macros clavier
start-kbd-macro (C-x ()
Démarrer la mémorisation dans la macro en cours des caractÚres tapés.
end-kbd-macro (C-x ))
ArrĂȘter la mĂ©morisation dans la macro en cours des caractĂšres saisis et conserver la dĂ©finition.
call-last-kbd-macro (C-x e)
Réexécuter la derniÚre macro définie, en agissant comme si les caractÚres contenus dans cette macro étaient saisis au clavier.
print-last-kbd-macro ()
Afficher la derniĂšre macro de clavier dĂ©finie, mise en forme de façon Ă ĂȘtre incorporĂ©e dans un fichier inputrc .
Divers
re-read-init-file (C-x C-r)
Lire le contenu du fichier inputrc et prendre en compte tous raccourcis ou affectations de variables qui sây trouvent.
abort (C-g)
Abandonner lâĂ©dition en cours et Ă©mettre une alarme de terminal (selon la configuration de la variable bell-style ).
do-lowercase-version (M-A, M-B, M- x , ...)
Si le caractÚre x précédé de Méta est en majuscule, exécuter la commande qui est associée aux caractÚres minuscules correspondants. Le comportement est non défini si x est déjà en minuscule.
prefix-meta (ESC)
Considérer le prochain caractÚre saisi comme un Méta. ESC f est équivalent à Meta-f .
undo (C-_, C-x C-u)
Fonction dâannulation incrĂ©mentale, chaque ligne Ă©tant mĂ©morisĂ©e sĂ©parĂ©ment.
revert-line (M-r)
Annuler toutes les modifications sur cette ligne. Câest Ă©quivalent Ă rĂ©pĂ©ter undo suffisamment de fois pour ramener la ligne Ă son Ă©tat initial.
tilde-expand (M-&)
Effectuer le développement du tilde sur le mot actuel.
set-mark (C-@, M-<space>)
Placer la marque à la position actuelle du curseur. Si un argument numérique est fourni, la marque est posée à la position correspondante.
exchange-point-and-mark (C-x C-x)
Ăchanger le curseur et la marque. La position actuelle du curseur est configurĂ©e Ă la position sauvegardĂ©e prĂ©cĂ©demment et lâancienne position du curseur est mĂ©morisĂ©e comme la marque.
character-search (C-])
Un caractĂšre est lu et le curseur dĂ©placĂ© Ă lâoccurrence suivante de ce caractĂšre. Un argument nĂ©gatif recherche les occurrences prĂ©cĂ©dentes.
character-search-backward (M-C-])
Un caractĂšre est lu et le curseur dĂ©placĂ© Ă lâoccurrence prĂ©cĂ©dente de ce caractĂšre. Un argument nĂ©gatif recherche les occurrences suivantes.
skip-csi-sequence
Lire suffisamment de caractĂšres pour englober une suite multitouche comme celles dĂ©finies pour des touches comme DĂ©but et Fin. De telles suites commencent par un indicateur de suite de contrĂŽle (« control sequence indicator » ou CSI), habituellement ESC-[. Si cette suite est associĂ©e Ă "\[", les touches qui produisent de telles suites nâauront pas dâeffet Ă moins dâĂȘtre explicitement associĂ©es Ă une commande readline, au lieu dâinsĂ©rer des caractĂšres parasites dans le tampon dâĂ©dition. Nâest associĂ©e Ă aucune touche par dĂ©faut, mais est souvent associĂ©e Ă ESC-[.
insert-comment (M-#)
Sans argument numĂ©rique, la valeur de la variable comment-begin de readline est insĂ©rĂ©e au dĂ©but de la ligne actuelle. Si un argument numĂ©rique est fourni, cette commande agit comme une bascule : si les caractĂšres du dĂ©but de ligne ne correspondent pas Ă la valeur de comment-begin , la valeur est insĂ©rĂ©e, sinon, les caractĂšres de comment-begin sont effacĂ©s du dĂ©but de la ligne. Dans les deux cas, la ligne est acceptĂ©e comme si un changement de ligne avait Ă©tĂ© saisi. La valeur par dĂ©faut de comment-begin conduit cette commande Ă transformer la ligne actuelle de lâinterprĂ©teur en commentaire. Si un argument numĂ©rique conduit Ă lâeffacement du caractĂšre de commentaire, la ligne sera exĂ©cutĂ©e par lâinterprĂ©teur.
spell-correct-word (C-x s)
Effectuer la correction orthographique sur le mot actuel, en le traitant comme un rĂ©pertoire ou un nom de fichier, de la mĂȘme maniĂšre que lâoption de lâinterprĂ©teur cdspell . Les limites des mots sont identiques Ă celles utilisĂ©es par shell-forward-word .
glob-complete-word (M-g)
Le mot avant le curseur est traité comme un motif pour un développement de chemin, avec un astérisque implicitement ajouté. Ce motif est utilisé pour produire une liste de noms de fichiers correspondants pour de possibles complÚtements.
glob-expand-word (C-x *)
Le mot précédant le curseur est considéré comme un motif de développement de chemin et la liste des fichiers correspondants est insérée à sa place. Si un argument numérique est fourni, un astérisque est ajouté avant le développement du chemin.
glob-list-expansions (C-x g)
La liste des développements qui auraient été produits par glob-expand-word est affichée et la ligne est rafraßchie. Si un argument numérique est fourni, un astérisque est ajouté devant le développement du chemin.
dump-functions
Afficher toutes les fonctions et leurs raccourcis clavier sur le flux de sortie de readline. Si un argument numĂ©rique est fourni, la sortie est mise en forme de façon Ă ĂȘtre incorporĂ©e dans un fichier inputrc .
dump-variables
Afficher toutes les variables readline modifiables et leurs valeurs sur le flux de sortie de readline. Si un argument numĂ©rique est fourni, la sortie est mise en forme de façon Ă ĂȘtre incorporĂ©e dans un fichier inputrc .
dump-macros
Afficher toutes les suites de touches readline associĂ©es Ă des macros et les chaĂźnes auxquelles elles correspondent. Si un argument numĂ©rique est fourni, la sortie est mise en forme de façon Ă ĂȘtre incorporĂ©e dans un fichier inputrc .
display-shell-version (C-x C-v)
Afficher des informations sur la version actuelle de bash .
ComplĂštement programmable
Lorsquâun complĂštement de mot est tentĂ© pour un argument dâune commande pour laquelle une spĂ©cification de complĂštement a Ă©tĂ© dĂ©finie en utilisant la commande interne complete (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous), les outils de complĂštement programmables sont appelĂ©s.
En premier lieu, le nom de la commande est identifiĂ©. Si le mot de commande est vide (complĂštement essayĂ© en dĂ©but de ligne vide), toutes les spĂ©cifications de complĂštement dĂ©finies par lâoption -E de complete sont utilisĂ©es. Si une spĂ©cification de complĂštement a Ă©tĂ© dĂ©finie pour cette commande, elle est utilisĂ©e pour produire la liste des complĂštements possibles pour le mot. Si le mot de commande est un chemin dâaccĂšs complet, on cherche en premier lieu une spĂ©cification de complĂštement pour le chemin dâaccĂšs complet. Si aucune spĂ©cification de complĂštement nâest trouvĂ©e pour le chemin dâaccĂšs complet, une tentative est effectuĂ©e pour trouver une spĂ©cification de complĂštement pour la partie situĂ©e aprĂšs la barre oblique finale. Si ces recherches ne donnent aucun rĂ©sultat sous forme de spĂ©cification de complĂštement, toutes les spĂ©cifications de complĂštement dĂ©finies par lâoption -D de complete sont utilisĂ©es par dĂ©faut. Sâil nâexiste pas de spĂ©cification de complĂštement par dĂ©faut, bash tente un dĂ©veloppement dâalias sur le mot de commande en dernier ressort et tente de trouver une spĂ©cification de complĂštement pour le mot de commande Ă partir de nâimporte quel dĂ©veloppement ayant rĂ©ussi.
Une fois quâune spĂ©cification de complĂštement a Ă©tĂ© trouvĂ©e, elle est utilisĂ©e pour produire la liste des mots correspondants. Si aucune spĂ©cification de complĂštement nâest trouvĂ©e, le complĂštement par dĂ©faut de bash , tel que dĂ©crit ci-dessus dans ComplĂštement est effectuĂ©.
Tout dâabord, les actions dĂ©finies par la spĂ©cification de complĂštement sont utilisĂ©es. Seules les correspondances prĂ©fixĂ©es par le mot Ă complĂ©ter sont renvoyĂ©es. Lorsque lâoption -f ou -d sont utilisĂ©es pour le complĂštement des noms de fichier ou de rĂ©pertoire, la variable dâinterprĂ©teur FIGNORE est utilisĂ©e pour filtrer les correspondances.
Tous les complĂštements indiquĂ©s par le motif de dĂ©veloppement de chemin de lâoption -G sont ensuite produits. Il nâest pas nĂ©cessaire que les mots produits par le motif correspondent au mot Ă complĂ©ter. La variable de lâinterprĂ©teur GLOBIGNORE nâest pas utilisĂ©e pour filtrer les correspondances, mais la variable FIGNORE est utilisĂ©e.
Ensuite, la chaĂźne indiquĂ©e comme argument Ă lâoption -W est prise en compte. Cette chaĂźne est tout dâabord dĂ©coupĂ©e en utilisant les caractĂšres de la variable spĂ©ciale IFS comme dĂ©limiteurs. Les protections de lâinterprĂ©teur sont prises en compte. Chaque mot est ensuite dĂ©veloppĂ© en utilisant les dĂ©veloppements dâaccolades, du tilde, des paramĂštres et des variables, de mĂȘme que la substitution de commande et le dĂ©veloppement arithmĂ©tique comme dĂ©crit ci-dessus dans DĂVELOPPEMENTS . Les rĂ©sultats sont dĂ©coupĂ©s en utilisant les rĂšgles dĂ©crites ci-dessus dans DĂ©coupage en mots . Les rĂ©sultats du dĂ©veloppement sont comparĂ©s au mot Ă complĂ©ter en considĂ©rant ce dernier comme prĂ©fixe et les mots correspondants deviennent les complĂštements possibles.
AprĂšs la crĂ©ation de ces correspondances, toute fonction de lâinterprĂ©teur ou commande indiquĂ©e avec les options -F et -C est appelĂ©e. Lorsque la commande ou la fonction est appelĂ©e, les variables COMP_LINE , COMP_POINT , COMP_LINKEY , et COMP_POINTYPE se voient affectĂ©es de valeurs comme dĂ©crit ci-dessus dans Variables de lâinterprĂ©teur . Si une fonction de lâinterprĂ©teur est appelĂ©e, les variables COMP_WORDS et COMP_CWORD sont Ă©galement créées. Lorsquâune fonction ou une commande est appelĂ©e, le premier argument ( $1 ) est le nom de la commande dont les arguments doivent ĂȘtre complĂ©tĂ©s, le deuxiĂšme argument ( $2 ) est le mot Ă complĂ©ter et le troisiĂšme argument ( $3 ) est le mot prĂ©cĂ©dant celui devant ĂȘtre complĂ©tĂ© sur la ligne de commande actuelle. Aucun filtrage des complĂštements produits pour le mot Ă complĂ©ter nâest effectué ; la fonction ou la commande a toute libertĂ© dans la production des correspondances.
Toute fonction indiquĂ©e avec -F est appelĂ©e en premier. La fonction peut utiliser tous les outils de lâinterprĂ©teur, incluant la commande interne compgen dĂ©crite ci-dessous, pour produire les correspondances. Elle doit mettre les complĂštements possibles dans la variable tableau COMPREPLY , un par Ă©lĂ©ment de tableau.
Ensuite, toute commande indiquĂ©e avec lâoption -C est appelĂ©e dans un environnement Ă©quivalent Ă la substitution de commande. Elle devrait afficher une liste des complĂštements possibles, un par ligne, sur la sortie standard. Si nĂ©cessaire, une contre-oblique peut ĂȘtre utilisĂ©e pour protĂ©ger un caractĂšre de changement de ligne.
AprĂšs la crĂ©ation de tous les complĂštements possibles, tout filtre, indiquĂ© avec lâoption -X , est appliquĂ© Ă la liste. Ce filtre est un motif comme dans le dĂ©veloppement des chemins ; un & dans le motif est remplacĂ© par le texte du mot en cours de complĂštement. Un & littĂ©ral peut ĂȘtre protĂ©gĂ© par une contre-oblique ; la contre-oblique est supprimĂ©e avant la tentative de mise en correspondance. Tout complĂštement qui correspond au motif sera supprimĂ© de la liste. Un ! au dĂ©but du motif provoque la nĂ©gation de ce motif ; dans ce cas, tout complĂštement ne correspondant pas au motif sera supprimĂ© de la liste. Si lâoption dâinterprĂ©teur nocasematch est activĂ©e, la mise en correspondance est effectuĂ©e sans tenir compte de la casse des caractĂšres alphabĂ©tiques.
Finalement, tous préfixe et suffixe indiqués avec les options -P et -S sont ajoutés à chacun des éléments de la liste de complÚtement et le résultat est renvoyé au programme de complÚtement de readline comme étant la liste des complÚtements possibles.
Si les opĂ©rations prĂ©cĂ©demment appliquĂ©es ne produisent aucune correspondance et si lâoption -o dirnames a Ă©tĂ© fournie Ă complete lorsque la spĂ©cification de complĂštement a Ă©tĂ© dĂ©finie, le complĂštement des noms de rĂ©pertoire est tentĂ©.
Si lâoption -o plusdirs a Ă©tĂ© fournie Ă complete lors de la dĂ©finition de la spĂ©cification de complĂštement, le complĂštement des noms de rĂ©pertoires est tentĂ© et toute correspondance est ajoutĂ©e aux rĂ©sultats des autres actions.
Par dĂ©faut, si une spĂ©cification de complĂštement est trouvĂ©e, tout ce quâelle produit est renvoyĂ© au programme de complĂštement comme un jeu complet des complĂštements possibles. Les complĂštements par dĂ©faut de bash ne sont pas tentĂ©s et le complĂštement de fichiers par dĂ©faut de readline est dĂ©sactivĂ©. Si lâoption -o bashdefault a Ă©tĂ© fournie Ă complete lors de la dĂ©finition de la spĂ©cification de complĂštement, les complĂštements par dĂ©faut de bash sont tentĂ©s si la spĂ©cification de complĂštement ne produit aucune correspondance. Si lâoption -o default a Ă©tĂ© fournie Ă complete lors de la dĂ©finition de la spĂ©cification de complĂštement, le complĂštement par dĂ©faut de readline sera effectuĂ© si la spĂ©cification de complĂštement (et, si tentĂ©s, les complĂštements par dĂ©faut de bash ) ne produit aucune correspondance.
Lorsquâune spĂ©cification de complĂštement indique quâun complĂštement de nom de rĂ©pertoire est souhaitĂ©, les fonctions de complĂštement programmable forcent readline Ă ajouter une barre oblique pour complĂ©ter les noms qui sont des liens symboliques vers des rĂ©pertoires, selon la valeur de la variable mark-directories de readline, indĂ©pendamment du paramĂ©trage de la variable mark-symlinked-directories de readline.
La modification dynamique des complĂštements est Ă©galement possible. Câest particuliĂšrement utile combinĂ© avec un complĂštement par dĂ©faut indiquĂ© Ă lâaide de complete -D . Les fonctions de lâinterprĂ©teur exĂ©cutĂ©s comme gestionnaires de complĂštement permettent dâannoncer que le complĂštement devrait ĂȘtre rĂ©essayĂ© en renvoyant un Ă©tat final de 124. Si une fonction de lâinterprĂ©teur renvoie 124, et modifie la spĂ©cification de complĂštement associĂ©e Ă la commande sur laquelle le complĂštement est essayĂ© (fournie comme premier argument quand la fonction est exĂ©cutĂ©e), le complĂštement programmable recommence depuis le dĂ©but, en essayant de trouver une nouvelle spĂ©cification de complĂštement pour cette commande. Un jeu de complĂštements peut ainsi ĂȘtre construit dynamiquement lorsque le complĂštement est essayĂ©, plutĂŽt que dâĂȘtre chargĂ© entiĂšrement au dĂ©but.
Par exemple, en supposant lâexistence dâune bibliothĂšque de spĂ©cifications de complĂštement, chacune conservĂ©e dans un fichier correspondant au nom de la commande, la fonction de complĂštement par dĂ©faut suivante chargerait les complĂštements de façon dynamique :
_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null
2>&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o
default
HISTORIQUE
Quand lâoption -o history de la commande interne set est activĂ©e, lâinterprĂ©teur donne accĂšs Ă un historique des commandes , câest-Ă -dire la liste des commandes prĂ©cĂ©demment utilisĂ©es. La valeur de la variable HISTSIZE est utilisĂ©e comme nombre de commandes Ă sauvegarder dans la file dâhistorique. Le texte des HISTSIZE derniĂšres commandes (par dĂ©faut 500) est sauvegardĂ©. LâinterprĂ©teur conserve chaque commande dans la file dâhistorique avant le dĂ©veloppement des paramĂštres et des variables (consultez DĂVELOPPEMENTS ci-dessus) mais aprĂšs avoir effectuĂ© le dĂ©veloppement de lâhistorique, selon les valeurs des variables de lâinterprĂ©teur HISTIGNORE et HISTCONTROL .
Au dĂ©marrage, lâhistorique est initialisĂ© avec le fichier dont le nom est contenu dans la variable HISTFILE (par dĂ©faut Ë/.bash_history ). Le fichier dĂ©signĂ© par la valeur de HISTFILE est tronquĂ© si nĂ©cessaire, pour ne pas contenir plus de lignes que le nombre prĂ©cisĂ© par HISTFILESIZE . Si HISTFILESIZE est dĂ©truite, ou dĂ©finie Ă NULL, une valeur non numĂ©rique ou une valeur numĂ©rique strictement infĂ©rieure Ă zĂ©ro, le fichier dâhistorique nâest pas tronquĂ©. Quand le fichier dâhistorique est lu, les lignes commençant par le caractĂšre de commentaire dâhistorique suivi immĂ©diatement par un chiffre sont considĂ©rĂ©es comme des horodatages de la ligne dâhistorique prĂ©cĂ©dente. Ces horodatages sont facultativement affichĂ©s en fonction de la valeur de la variable HISTTIMEFORMAT . Lorsquâun interprĂ©teur avec historique activĂ© se termine, les HISTSIZE derniĂšres lignes de la file dâhistorique sont copiĂ©es dans le fichier HISTFILE . Si lâoption dâinterprĂ©teur histappend est activĂ©e (consultez la description de shopt dans COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous), les lignes sont ajoutĂ©es au fichier dâhistorique, sinon le fichier est Ă©crasĂ©. Si HISTFILE est inexistante ou si le fichier dâhistorique nâest pas accessible en Ă©criture, lâhistorique nâest pas sauvegardĂ©. Si la variable HISTTIMEFORMAT est configurĂ©e, les horodatages sont Ă©crits dans le fichier dâhistorique, repĂ©rĂ©s par le caractĂšre de commentaire dâhistorique, afin dâĂȘtre conservĂ©s au fur et Ă mesure des sessions de lâinterprĂ©teur. Le caractĂšre de commentaire dâhistorique est utilisĂ© pour distinguer lâhorodatage des autres lignes de lâhistorique. AprĂšs la sauvegarde de lâhistorique, le fichier dâhistorique est tronquĂ© pour ne pas contenir plus de HISTFILESIZE lignes. Si HISTFILESIZE est dĂ©truite, ou dĂ©finie Ă NULL, une valeur non numĂ©rique ou une valeur numĂ©rique infĂ©rieure Ă zĂ©ro, le fichier dâhistorique nâest pas tronquĂ©.
La commande interne fc (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous) permet dâafficher, dâĂ©diter ou de rĂ©exĂ©cuter une partie de la file dâhistorique. La commande interne history permet dâafficher la file dâhistorique et de manipuler le fichier dâhistorique. Quelque soit le mode dâĂ©dition en ligne de commande, des commandes de recherche donnent accĂšs Ă la file dâhistorique.
LâinterprĂ©teur permet de configurer quelles commandes seront sauvegardĂ©es dans la file dâhistorique. Les variables HISTCONTROL et HISTIGNORE peuvent ĂȘtre configurĂ©es pour conduire lâinterprĂ©teur Ă ne sauvegarder quâun sous-ensemble des commandes saisies. Lâoption dâinterprĂ©teur cmdhist , si activĂ©e, conduit lâinterprĂ©teur Ă essayer de sauvegarder chaque ligne dâune commande multiligne dans le mĂȘme Ă©lĂ©ment de lâhistorique, en ajoutant des points-virgules si nĂ©cessaire pour prĂ©server lâexactitude de la syntaxe. Lâoption dâinterprĂ©teur lithist conduit lâinterprĂ©teur Ă sauvegarder les commandes avec des changements de ligne incorporĂ©s plutĂŽt que des points-virgules. Consultez ci-dessous la description de la commande interne shopt dans COMMANDES INTERNES DE LâINTERPRĂTEUR pour des dĂ©tails sur la crĂ©ation et la destruction des options dâinterprĂ©teur.
DĂVELOPPEMENT DE LâHISTORIQUE
LâinterprĂ©teur propose des possibilitĂ©s de dĂ©veloppement de lâhistorique qui sont semblables Ă celles de csh . Ce paragraphe dĂ©crit quelles syntaxes sont disponibles. Cette fonctionnalitĂ© est activĂ©e par dĂ©faut dans les interprĂ©teurs interactifs et peut ĂȘtre dĂ©sactivĂ©e en utilisant lâoption +H de la commande interne set (consultez COMMANDES INTERNES DE LâINTERPRĂTEUR ci-dessous). Les interprĂ©teurs non interactifs nâeffectuent pas de dĂ©veloppement dâhistorique par dĂ©faut.
Le dĂ©veloppement de lâhistorique permet dâinsĂ©rer des mots de la file dâhistorique dans le flux de saisie, facilitant la rĂ©pĂ©tition de commandes, lâinsertion des arguments dâune ligne antĂ©rieure dans la saisie en cours ou la correction rapide dâerreurs dans les commandes prĂ©cĂ©dentes.
Le dĂ©veloppement de lâhistorique est effectuĂ© immĂ©diatement aprĂšs la lecture dâune ligne complĂšte, avant que lâinterprĂ©teur ne la dĂ©compose en mots. Il est effectuĂ© sur chaque ligne individuellement sans prendre en compte une protection sur les lignes prĂ©cĂ©dentes. Il se dĂ©roule en deux parties. La premiĂšre consiste Ă dĂ©terminer la ligne de la file dâhistorique Ă utiliser pour les substitutions, la seconde permet de sĂ©lectionner les parties de la ligne Ă inclure dans la ligne actuelle. La ligne sĂ©lectionnĂ©e dans lâhistorique est lâ Ă©vĂ©nement et les parties de cette ligne Ă rĂ©utiliser sont des mots . Plusieurs modificateurs permettent de manipuler les mots sĂ©lectionnĂ©s. La ligne est dĂ©coupĂ©e en mots de la mĂȘme façon que lors de la lecture dâune saisie, ainsi plusieurs mots sĂ©parĂ©s par des mĂ©tacaractĂšres et encadrĂ©s par des guillemets sont considĂ©rĂ©s comme un unique mot. Le dĂ©veloppement de lâhistorique est introduit par lâapparition du caractĂšre de dĂ©veloppement, qui est ! par dĂ©faut. Seules la contre-oblique ( \ ) et les guillemets simples permettent de protĂ©ger le caractĂšre de dĂ©veloppement de lâhistorique, mais le caractĂšre de dĂ©veloppement de lâhistorique est aussi traitĂ© comme protĂ©gĂ© sâil prĂ©cĂšde immĂ©diatement le guillemet double fermant dans une chaĂźne entre guillemets doubles.
Plusieurs caractĂšres empĂȘchent le dĂ©veloppement de lâhistorique sâils se trouvent immĂ©diatement aprĂšs le caractĂšre de dĂ©veloppement de lâhistorique, mĂȘme sâil nâest pas protĂ©gé : espace, tabulation, changement de ligne, retour chariot et = . Si lâoption dâinterprĂ©teur extglob est activĂ©e, ( empĂȘchera aussi le dĂ©veloppement.
Plusieurs options dâinterprĂ©teur, configurables avec la commande interne shopt , permettent dâajuster le comportement du dĂ©veloppement de lâhistorique. Si lâoption dâinterprĂ©teur histverify est activĂ©e (consultez la description de la commande interne shopt ci-dessous) et si readline est utilisĂ©e, les substitutions dâhistorique ne sont pas transmises tout de suite Ă lâanalyseur de lâinterprĂ©teur. Ă la place, la ligne dĂ©veloppĂ©e est rechargĂ©e dans le tampon dâĂ©dition de readline pour permettre des modifications ultĂ©rieures. Si readline est utilisĂ©e et si lâoption histreedit est activĂ©e, une substitution dâhistorique qui Ă©choue est rechargĂ©e dans la mĂ©moire tampon de readline pour correction. Lâoption -p de la commande interne history peut servir Ă examiner ce quâune substitution donnera avant de lâemployer rĂ©ellement. Lâoption -s de la commande interne history permet dâajouter des commandes Ă la fin de la file dâhistorique sans les avoir effectivement exĂ©cutĂ©es, afin quâelles soient disponibles pour des rappels ultĂ©rieurs.
LâinterprĂ©teur offre le contrĂŽle des divers caractĂšres utilisĂ©s par le mĂ©canisme de dĂ©veloppement de lâhistorique (consultez la description de histchars ci-dessus dans Variables de lâinterprĂ©teur ). LâinterprĂ©teur utilise le caractĂšre de commentaire dâhistorique pour repĂ©rer lâhorodatage lors de lâĂ©criture du fichier dâhistorique.
Indicateur dâĂ©vĂ©nement
Un indicateur dâĂ©vĂ©nement est une rĂ©fĂ©rence Ă un Ă©lĂ©ment ligne de commande dans la file dâhistorique. Sauf sâil sâagit dâune rĂ©fĂ©rence absolue, les Ă©vĂ©nements sont relatifs Ă la position actuelle dans la file dâhistorique.
|
! |
DĂ©bute une substitution dâhistorique, sauf sâil est suivi par un blanc , changement de ligne, retour chariot, = ou ( (lorsque lâoption dâinterprĂ©teur extglob est activĂ©e en utilisant la commande interne shopt ). |
||
|
! n |
Se rapporte Ă la ligne de commande n . |
||
|
!- n |
Se rapporte Ă la commande actuelle moins n . |
||
|
!! |
Se rapporte Ă la commande prĂ©cĂ©dente. Câest un synonyme de « !-1 ». |
! chaĂźne
Se rapporte Ă la commande la plus rĂ©cente prĂ©cĂ©dant la position actuelle dans la file dâhistorique commençant par chaĂźne .
!? chaĂźne [ ? ]
Se rapporte Ă la commande la plus rĂ©cente prĂ©cĂ©dant la position actuelle dans la file dâhistorique contenant chaĂźne . Le ? final peut ĂȘtre omis si chaĂźne est immĂ©diatement suivie dâun changement de ligne. Si chaĂźne est absente, la chaĂźne de la derniĂšre recherche est utilisĂ©e ; câest une erreur sâil nây a pas de chaĂźne de recherche prĂ©cĂ©dente.
Ë chaĂźne_1 Ë chaĂźne_2 Ë
Substitution rapide. RĂ©pĂ©ter la commande prĂ©cĂ©dente en remplaçant chaĂźne_1 par chaĂźne_2 . Ăquivalent à « !!:s Ë chaĂźne_1 Ë chaĂźne_2 Ë Â» (consultez Modificateurs ci-dessous).
|
!# |
La ligne entiĂšre tapĂ©e jusquâĂ prĂ©sent. |
Indicateurs de mots
Ces indicateurs
servent à sélectionner les mots
désirés dans un événement. Un
:
sĂ©pare lâindicateur
dâĂ©vĂ©nements de lâindicateur de
mot. On peut lâomettre si lâindicateur de mot
commence par
Ë
,
$
,
*
,
-
ou
%
. Les mots sont numérotés depuis le
début de la ligne, le premier étant
noté
0
(zéro). Les mots sont
insérés dans la ligne actuelle,
séparés par des espaces.
0
(zéro)
Le zĂ©roiĂšme mot. Pour lâinterprĂ©teur, câest le nom de la commande.
|
n |
Le n -iĂšme mot. |
||
|
Ë |
Le premier argument, câest-Ă -dire le mot 1. |
||
|
$ |
Le dernier mot. Câest gĂ©nĂ©ralement le dernier argument, mais qui sera dĂ©veloppĂ© en zĂ©roiĂšme mot sâil nây a quâun seul mot sur la ligne. |
||
|
% |
Le premier mot correspondant Ă la recherche « ? chaĂźne ? » la plus rĂ©cente, si la chaĂźne de recherche dĂ©bute par un caractĂšre qui fait partie dâun mot. |
||
|
x - y |
Un intervalle de mots, « - y » permet dâabrĂ©ger « 0- y ». |
||
|
* |
Tous les mots sauf le zĂ©roiĂšme. Câest un synonyme pour « 1-$ ». Il nâest pas erronĂ© dâutiliser * sâil nây a quâun mot dans lâĂ©vĂ©nement ; la chaĂźne vide est renvoyĂ©e dans ce cas. |
||
|
x * |
Abréviation de x -$ . |
||
|
x - |
Abréviation de x -$ comme x * , mais sans le dernier mot. Si x est absent, la valeur par défaut est 0 . |
Si un indicateur de mot est fourni sans indication dâĂ©vĂ©nement, la derniĂšre commande est utilisĂ©e.
Modificateurs
AprĂšs un indicateur de mot facultatif, une suite dâun ou plusieurs des modificateurs suivants peut apparaĂźtre, chacun prĂ©cĂ©dĂ© par un « : ». Cela modifie ou corrige le ou les mots sĂ©lectionnĂ©s Ă partir de lâĂ©vĂ©nement de lâhistorique.
|
h |
Ăliminer la fin du chemin dâaccĂšs, en ne gardant que le dĂ©but. |
||
|
t |
Supprimer tout le dĂ©but dâun chemin dâaccĂšs, en ne gardant que la fin. |
||
|
r |
Supprimer un suffixe final de la forme .xxx , en ne gardant que le nom de base. |
||
|
e |
Supprimer tout sauf le suffixe final. |
||
|
p |
Afficher la nouvelle commande sans lâexĂ©cuter. |
||
|
q |
Protéger les mots substitués, pour éviter des substitutions futures. |
||
|
x |
ProtĂ©ger les mots substituĂ©s comme avec q , mais avec sĂ©paration des mots aux blancs et changements de ligne. Les modificateurs q et x sâexcluent mutuellement ; le dernier fourni est utilisĂ©. |
s/ ancien / nouveau /
Remplacer par nouveau la premiĂšre occurrence de ancien sur la ligne dâĂ©vĂ©nement. Tout caractĂšre peut ĂȘtre utilisĂ© comme dĂ©limiteur Ă la place de /. Le dernier dĂ©limiteur est facultatif si câest le dernier caractĂšre de la ligne dâĂ©vĂ©nement. Le dĂ©limiteur peut ĂȘtre protĂ©gĂ© dans ancien et nouveau avec une seule contre-oblique. Si & apparaĂźt dans nouveau , il est remplacĂ© par ancien . Une seule contre-oblique protĂ©gera le &. Si ancien est NULL, il est configurĂ© au dernier ancien substituĂ© ou si aucune substitution nâa eu lieu prĂ©cĂ©demment, Ă la derniĂšre chaĂźne dans une recherche !? chaĂźne [?] . Si nouveau est NULL, chaque correspondance Ă ancien est supprimĂ©e.
|
& |
Répéter la substitution précédente. |
||
|
g |
Appliquer les modifications sur toute la ligne dâĂ©vĂ©nements. Câest utilisĂ© conjointement à « :s » (par exemple « :gs/ ancien / nouveau / ») ou « :& ». Si utilisĂ© avec « :s », tout dĂ©limiteur peut ĂȘtre utilisĂ© Ă la place de / et le dernier dĂ©limiteur est facultatif si câest le dernier caractĂšre de la ligne dâĂ©vĂ©nements. Un a peut ĂȘtre utilisĂ© en tant que synonyme de g . |
||
|
G |
Appliquer une fois le modificateur « s » ou « & » suivant Ă tous les mots de la ligne dâĂ©vĂ©nement. |
COMMANDES INTERNES DE LâINTERPRĂTEUR
Sauf indication
contraire, chaque commande interne décrite dans ce
paragraphe comme acceptant des options
précédées par
-
accepte
également la notation
--
pour signaler la fin
des options. Les commandes internes
:
,
true
,
false
et
test
/
[
nâacceptent
aucune option et ne traitent pas
--
particuliĂšrement. Les commandes internes
exit
,
logout
,
return
,
break
,
continue
,
let
et
shift
acceptent et traitent les
arguments commençant par
-
sans avoir besoin
de
--
. Les autres commandes internes, qui acceptent
des arguments mais qui ne sont pas déclarées
explicitement comme acceptant des options,
considÚrent les arguments commençant par
-
comme des options non valides, donc
--
est
obligatoire pour éviter cette interprétation.
:
[
arguments
]
Sans effet ; cette commande ne fait rien dâautre que dĂ©velopper les arguments et effectuer toute redirection indiquĂ©e. LâĂ©tat renvoyĂ© est 0 .
.
fichier
[
arguments
]
source
fichier
[
arguments
]
Lire et exĂ©cuter les commandes du fichier dans lâenvironnement de lâinterprĂ©teur actuel, puis renvoyer lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e depuis fichier . Si le nom du fichier ne contient pas de barre oblique, les chemins dâaccĂšs contenus dans PATH sont parcourus pour rechercher le rĂ©pertoire contenant le fichier , mais le fichier nâa pas besoin dâĂȘtre exĂ©cutable. Lorsquâil est recherchĂ© dans PATH le fichier nâa pas besoin dâĂȘtre exĂ©cutable. Lorsque bash nâest pas en mode POSIX , il examine le rĂ©pertoire de travail actuel si aucun fichier nâest trouvĂ© dans PATH . Si lâoption sourcepath de la commande interne shopt est dĂ©sactivĂ©e, le PATH nâest pas parcouru. Si des arguments sont fournis, ils sont transmis dans les paramĂštres positionnels lorsque le fichier est exĂ©cutĂ©. Sinon les paramĂštres positionnels ne sont pas modifiĂ©s. Si lâoption -T est activĂ©e, . hĂ©rite de toutes les captures de DEBUG ; si elle ne lâest pas, toutes les chaĂźnes de capture de DEBUG sont sauvegardĂ©es et restaurĂ©es autour de lâappel Ă . , et dĂ©truit les captures de DEBUG lors de son exĂ©cution. Si -T nâexiste pas et si le fichier venant de la source modifie la capture de DEBUG , la nouvelle valeur est conservĂ©e quand . se termine. LâĂ©tat renvoyĂ© est lâĂ©tat de la derniĂšre commande terminĂ©e au sein du script ( 0 si aucune commande nâa Ă©tĂ© exĂ©cutĂ©e) et faux si le fichier nâest pas trouvĂ© ou ne peut ĂȘtre lu.
alias [ -p ] [ nom [= valeur ] ...]
La commande alias sans argument ou avec lâoption -p affiche sur la sortie standard la liste des alias actuellement dĂ©finis, sous la forme nom = valeur . Lorsque des arguments sont fournis, un alias est créé pour chaque nom auquel on a donnĂ© une valeur . Une espace finale dans une valeur conduira Ă la recherche dâalias dans le mot suivant lors du dĂ©veloppement de lâalias. Pour tous les nom s sans valeur fournie dans la liste dâarguments, le nom et la valeur de lâalias sont affichĂ©s. La commande alias renvoie vrai, Ă moins quâun nom nâait Ă©tĂ© indiquĂ© pour lequel aucun alias nâa Ă©tĂ© dĂ©fini.
bg [ tĂąche ...]
Reprendre en arriĂšre-plan chaque tĂąche suspendue, comme si elle avait Ă©tĂ© lancĂ©e avec & . Si aucune tĂąche nâest prĂ©cisĂ©e, la notion dâinterprĂ©teur de tĂąche actuelle est utilisĂ©e. bg tĂąche renvoie 0 sauf si le contrĂŽle des tĂąches est dĂ©sactivĂ©, ou, quand le contrĂŽle des tĂąches est activĂ©, si une tĂąche prĂ©cisĂ©e nâa pas Ă©tĂ© trouvĂ©e ou a Ă©tĂ© lancĂ©e sans contrĂŽle de tĂąches.
bind
[
-m
jeu_de_raccourcis
] [
-lpsvPSVX
]
bind
[
-m
jeu_de_raccourcis
] [
-q
fonction
] [
-u
fonction
] [
-r
suite_de_touches
]
bind
[
-m
jeu_de_raccourcis
]
-f
fichier
bind
[
-m
jeu_de_raccourcis
]
-x
suite_de_touches
:
commande_de_lâinterprĂ©teur
bind
[
-m
jeu_de_raccourcis
]
suite_de_touches
:
nom_de_fonction
bind
[
-m
jeu_de_raccourcis
]
suite_de_touches
:
commande_readline
bind
readline-command-line
Afficher les associations de
touches
readline
actuelles et les raccourcis de
fonctions, associer une suite de touches Ă une
fonction ou une macro
readline
ou créer une
variable
readline
. Chaque argument qui nâest
pas une option est une commande comme elle devrait
apparaĂźtre dans un fichier dâinitialisation de
readline
tel que
.inputrc
, mais chaque
raccourci ou commande doit ĂȘtre fourni comme un
argument indépendant ; par exemple
« "\C-x\C-r":
re-read-init-file ». Les options, si fournies,
ont les significations suivantes :
-m
jeu_de_raccourcis
Utiliser le jeu_de_raccourcis comme jeu de raccourcis devant ĂȘtre concernĂ© par les raccourcis ultĂ©rieurs. Les noms de jeu_de_raccourcis possibles sont emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command et vi-insert . vi est Ă©quivalent Ă vi-command ( vi-move est aussi un synonyme) ; emacs est Ă©quivalent Ă emacs-standard .
|
-l |
Afficher la liste des noms de toutes les fonctions readline . |
||
|
-p |
Afficher les noms des fonctions readline et leurs raccourcis de façon à pouvoir les relire. |
||
|
-P |
Afficher les noms des fonctions readline et leurs raccourcis. |
||
|
-s |
Afficher les suites de touches readline associées aux macros et les chaßnes correspondantes, de façon à pouvoir les relire. |
||
|
-S |
Afficher les suites de touches readline associées aux macros et les chaßnes correspondantes. |
||
|
-v |
Afficher les noms des variables readline et leurs valeurs de façon à pouvoir les relire. |
||
|
-V |
Afficher les noms des variables readline et leurs valeurs. |
-f fichier
Lire les raccourcis clavier dans fichier .
-q fonction
Rechercher les touches permettant dâappeler la fonction indiquĂ©e.
-u fonction
Dissocier toutes les touches associées à fonction .
-r suite_de_touches
Supprimer tout raccourci actuel pour la suite_de_touches .
-x suite_de_touches : commande_de_lâinterprĂ©teur
Conduire la commande_de_lâinterprĂ©teur Ă ĂȘtre exĂ©cutĂ©e chaque fois que la suite_de_touches est saisie. Quand la commande_de_lâinterprĂ©teur est exĂ©cutĂ©e, lâinterprĂ©teur configure la variable READLINE_LINE au contenu du tampon de ligne de readline et les variables READLINE_POINT et READLINE_MARK Ă la position actuelle du curseur dâinsertion et du point dâinsertion sauvegardĂ© (la marque) respectivement. LâinterprĂ©teur affecte tout argument numĂ©rique fourni par lâutilisateur Ă la variable READLINE_ARGUMENT . Sâil nây a pas dâargument, la variable nâexiste pas. Si la commande exĂ©cutĂ©e modifie les valeurs de READLINE_LINE , READLINE_POINT ou READLINE_MARK , ces nouvelles valeurs seront prises en considĂ©ration dans lâĂ©tat dâĂ©dition.
|
-X |
Afficher toutes les suites de touches associĂ©es aux commandes de lâinterprĂ©teur et aux commandes associĂ©es pour pouvoir ĂȘtre rĂ©utilisĂ©es en entrĂ©e. |
La valeur renvoyĂ©e est 0 , Ă moins quâune option inconnue ne soit indiquĂ©e ou quâune erreur ne se soit produite.
break [ n ]
Sortir dâune boucle for , while , until ou select . Si n est indiquĂ©, sortir de n niveaux de boucles. n doit ĂȘtre â„ 1. Si n est supĂ©rieur au nombre de boucles imbriquĂ©es, sortir de toutes les boucles. La valeur renvoyĂ©e est 0 , Ă moins que n ne soit pas supĂ©rieur ou Ă©gal Ă 1 .
builtin commande_interne [ arguments ]
ExĂ©cuter la commande interne de lâinterprĂ©teur indiquĂ©e, en lui passant les arguments , puis renvoyer son Ă©tat final. Câest utile lorsquâune fonction est dĂ©finie avec le mĂȘme nom quâune commande interne, et que cette commande est appelĂ©e depuis lâintĂ©rieur de la fonction. La commande interne cd est souvent redĂ©finie de cette façon. LâĂ©tat renvoyĂ© est faux si la commande_interne nâest pas une commande interne de lâinterprĂ©teur.
caller [ expr ]
Renvoyer le contexte de tout appel de sous-programme actif (une fonction de lâinterprĂ©teur ou un script lancĂ© avec les commandes internes . ou source ). Sans expr , caller affiche le numĂ©ro de ligne et le nom de fichier du sous-programme actuel. Si un entier positif est fourni comme expr , caller affiche le numĂ©ro de ligne, le nom du sous-programme et le nom de fichier source correspondant Ă la position dans la pile dâappels dâexĂ©cution actuelle. Cette information supplĂ©mentaire peut ĂȘtre utilisĂ©e, par exemple, pour afficher une trace de la pile. La trame actuelle est la trame 0 . La valeur renvoyĂ©e est 0 , Ă moins que lâinterprĂ©teur ne soit pas en train dâexĂ©cuter un sous-programme ou que expr ne corresponde pas Ă une position correcte dans la pile dâappels.
cd [ -L |[ -P [ -e ]] [-@]] [ rép ]
Remplacer le rĂ©pertoire de travail actuel par rĂ©p . Si rĂ©p nâest pas fourni, la valeur de la variable dâinterprĂ©teur HOME est la valeur par dĂ©faut. La variable CDPATH dĂ©finit des chemins de recherche pour trouver le rĂ©pertoire contenant rĂ©p : tous les noms de rĂ©pertoire contenus dans CDPATH sont parcourus Ă la recherche de rĂ©p . Les rĂ©pertoires possibles y sont fournis dans une liste sĂ©parĂ©s par des deux-points « : ». Un nom de rĂ©pertoire NULL dans CDPATH est Ă©quivalent au rĂ©pertoire actuel, câest-Ă -dire « . ». Si rĂ©p commence par une barre oblique ( / ), alors CDPATH nâest pas utilisĂ©. Lâoption -P force cd Ă nâemployer que la structure de rĂ©pertoires physiques en rĂ©solvant les liens symboliques en traversant rĂ©p et avant de traiter les instances de .. dans rĂ©p (consultez aussi lâoption -P de la commande interne set ) ; lâoption -L force Ă suivre les liens symboliques en rĂ©solvant les liens symboliques aprĂšs le traitement des instances de .. dans rĂ©p . Si .. apparaĂźt dans rĂ©p , il est traitĂ© en supprimant le composant de chemin prĂ©cĂ©dant directement rĂ©p , jusquâĂ une barre oblique ou le dĂ©but de rĂ©p . Si lâoption -e est fournie avec -P , et que le rĂ©pertoire de travail actuel ne peut pas ĂȘtre dĂ©terminĂ© avec succĂšs aprĂšs un changement de rĂ©pertoire avec succĂšs, cd renverra un Ă©tat dâĂ©chec. Sur les systĂšmes qui le permettent, lâoption -@ prĂ©sente les attributs Ă©tendus associĂ©s Ă un fichier comme Ă un rĂ©pertoire. Un argument - est converti en $OLDPWD avant dâessayer un changement de rĂ©pertoire. Si un nom de rĂ©pertoire non vide de CDPATH est utilisĂ© ou si - est le premier argument et si le changement de rĂ©pertoire rĂ©ussit, le chemin absolu du nouveau rĂ©pertoire de travail est Ă©crit sur la sortie standard. Si le changement de rĂ©pertoire rĂ©ussit, cd dĂ©finit la valeur de la variable dâenvironnement PWD au nom du nouveau rĂ©pertoire et rĂšgle la variable dâenvironnement OLDPWD Ă celle du rĂ©pertoire de travail en cours avant le changement. La valeur renvoyĂ©e est vrai si le changement de rĂ©pertoire a rĂ©ussi, faux sinon.
command [ -pVv ] commande [ arguments ...]
ExĂ©cuter la commande avec les arguments indiquĂ©s, mais en supprimant le processus habituel de recherche des commandes. Seules les commandes internes ou les commandes trouvĂ©es dans PATH seront exĂ©cutĂ©es. Si lâoption -p est indiquĂ©e, la recherche de la commande est effectuĂ©e en utilisant une valeur par dĂ©faut pour PATH garantissant de trouver tous les utilitaires standards. Si lâoption -V ou -v est fournie, une description de la commande est affichĂ©e. Lâoption -v conduit Ă nâafficher quâun seul mot indiquant la commande ou le nom de fichier utilisĂ© pour appeler la commande . Lâoption -V fournit une description plus prolixe. Si lâoption -V ou -v est fournie, lâĂ©tat final est 0 si la commande a Ă©tĂ© trouvĂ©e et 1 sinon. Si aucune option nâest fournie et si une erreur sâest produite ou si la commande ne peut ĂȘtre trouvĂ©e, lâĂ©tat final est 127. Sinon, lâĂ©tat final de la command interne est lâĂ©tat final de commande .
compgen [ option ] [ mot ]
Produire les correspondances des complĂštements possibles pour mot selon les option s, qui peuvent ĂȘtre toute option acceptĂ©e par la commande interne complete Ă lâexception de -p et -r et Ă©crit le rĂ©sultat sur la sortie standard. Lorsquâon utilise les options -F ou -C , les diverses variables de lâinterprĂ©teur créées par les outils de complĂštement programmables, lorsque disponibles, nâauront pas de valeurs utilisables.
Les correspondances seront produites de la mĂȘme façon que si le programme de complĂštement programmable les avait produites directement Ă partir dâune spĂ©cification de complĂštement avec les mĂȘmes attributs. Si mot est indiquĂ©, seuls les complĂštements qui correspondent Ă mot sont affichĂ©s.
La valeur renvoyĂ©e est vrai, sauf si une option incorrecte a Ă©tĂ© fournie ou si aucune correspondance nâa Ă©tĂ© produite.
complete
[
-abcdefgjksuv
] [
-o
option-complĂštement
] [
-DEI
] [
-A
action
]
[
-G
globpat
] [
-W
liste_de_mots
]
[ -F fonction ] [ -C commande ] [ -X motif_filtre ] [ -P préfixe ] [ -S suffixe ] nom [ nom ...]
complete -pr [ -DEI ] [ nom ...]
Indiquer la façon de complĂ©ter les arguments de chaque nom . Si lâoption -p est fournie ou si aucune option nâest fournie, les spĂ©cifications de complĂštement existantes sont affichĂ©es de telle façon quâelles puissent ĂȘtre rĂ©utilisĂ©es comme entrĂ©e. Lâoption -r retire une spĂ©cification de complĂštement Ă chaque nom fourni ou, si aucun nom nâest fourni, toutes les spĂ©cifications de complĂštement. Lâoption -D indique que les options restantes et les actions devraient sâappliquer au complĂštement de commande par « dĂ©faut », câest-Ă -dire le complĂštement essayĂ© sur une commande pour laquelle aucun complĂštement nâa Ă©tĂ© prĂ©alablement dĂ©fini. Lâoption -E indique que les options restantes et les actions devraient sâappliquer au complĂštement de commande « vide », câest-Ă -dire le complĂštement essayĂ© sur une ligne vide. Lâoption -I indique que les options restantes et les actions devraient sâappliquer au complĂštement du premier mot de non affectation de la ligne ou aprĂšs un dĂ©limiteur de commande ; ou | , ce qui est habituellement le complĂštement dâun nom de commande. Si plusieurs options sont fournies, lâoption -D prend la prĂ©sĂ©ance sur -E et les deux prennent la prĂ©sĂ©ance sur -I . Si une des -options -D , -E ou -I est fournie, tous les autres arguments de nom sont ignorĂ©s ; ces complĂštements ne sâappliquent quâau cas prĂ©cisĂ© par lâoption.
Le processus dâapplication de ces spĂ©cifications de complĂštement, lorsquâun complĂštement de mot est tentĂ©, est dĂ©crit above under Programmable Completion .
Les autres
options, si indiquées, ont les significations
suivantes. Les arguments des options
-G
,
-W
et
-X
(et, si nécessaire, les options
-P
et
-S
) devraient ĂȘtre protĂ©gĂ©es
pour éviter leur développement avant que la
commande interne
complete
ne soit appelée.
-o
option-complĂštement
Lâ
option-complĂštement
commande plusieurs aspects du comportement des
spĂ©cifications de complĂštement au-delĂ
de la simple production de complĂštement.
option-complĂštement
peut ĂȘtre
lâune des suivantes :
bashdefault
Effectuer le reste des complÚtements par défaut de bash si la spécification de complÚtement ne produit aucune correspondance.
|
default |
Utiliser le complÚtement de nom de fichier par défaut de readline si la spécification de complÚtement ne produit aucune correspondance. |
dirnames
Effectuer le complÚtement de nom de répertoire si la spécification de complÚtement ne produit aucune correspondance.
filenames
Indiquer Ă readline que la spĂ©cification de complĂštement produit des noms de fichiers, ainsi il peut effectuer tout traitement spĂ©cifique aux noms de fichiers (comme ajouter une barre oblique aux noms de rĂ©pertoires, protĂ©ger les caractĂšres spĂ©ciaux ou supprimer les espaces de fin de ligne). DestinĂ©e Ă ĂȘtre utilisĂ©e avec les fonctions de lâinterprĂ©teur.
|
noquote |
Indiquer Ă readline de protĂ©ger les mots complĂ©tĂ©s sâil sâagit de noms de fichier (la protection des noms de fichier est par dĂ©faut). |
||
|
nosort |
Indiquer à readline de ne pas trier par ordre alphabétique la liste des complÚtements possibles. |
||
|
nospace |
Indiquer à readline de ne pas ajouter une espace (comportement par défaut) aux mots complétés en fin de ligne. |
plusdirs
AprÚs création de toutes les correspondances définies par la spécification de complÚtement, une tentative de complÚtement de nom de répertoire est effectuée et toutes les correspondances sont ajoutées aux résultats des autres actions.
-A action
Lâ action peut ĂȘtre lâune des suivantes pour produire une liste des complĂštements possibles :
|
alias |
Noms dâalias. Peut Ă©galement ĂȘtre indiquĂ©e avec -a . |
arrayvar
Noms de variable de type tableau.
|
binding |
Noms de raccourci clavier readline . |
||
|
builtin |
Noms de commandes internes de lâinterprĂ©teur. Peut Ă©galement ĂȘtre indiquĂ©e avec -b . |
||
|
command |
Noms de commande. Peut Ă©galement ĂȘtre indiquĂ©e avec -c . |
directory
Noms de rĂ©pertoire. Peut Ă©galement ĂȘtre indiquĂ©e avec -d .
disabled
Noms de commandes internes de lâinterprĂ©teur dĂ©sactivĂ©es.
|
enabled |
Noms de commandes internes de lâinterprĂ©teur activĂ©es. |
||
|
export |
Noms de variables de lâinterprĂ©teur exportĂ©es. Peut Ă©galement ĂȘtre indiquĂ©e avec -e . |
||
|
file |
Noms de fichier. Peut Ă©galement ĂȘtre indiquĂ©e avec -f . |
function
Noms de fonctions de lâinterprĂ©teur.
|
group |
Noms de groupe. Peut Ă©galement ĂȘtre indiquĂ©e avec -g . |
helptopic
Sujets de lâaide acceptĂ©s par la commande interne help .
hostname
Noms de machine tels quâils sont extraits du fichier indiquĂ© par la variable de lâinterprĂ©teur HOSTFILE .
|
job |
Noms de tĂąche si le contrĂŽle des tĂąches est actif. Peut Ă©galement ĂȘtre indiquĂ©e avec -j . |
||
|
keyword |
Mots rĂ©servĂ©s de lâinterprĂ©teur. Peut Ă©galement ĂȘtre indiquĂ©e avec -k . |
||
|
running |
Noms de tĂąches en cours dâexĂ©cution si le contrĂŽle des tĂąches est actif. |
||
|
service |
Noms de service. Peut Ă©galement ĂȘtre indiquĂ©e avec -s . |
||
|
setopt |
Arguments corrects de lâoption -o de la commande interne set . |
||
|
shopt |
Noms des options dâinterprĂ©teur acceptĂ©es par la commande interne shopt . |
||
|
signal |
Noms de signaux. |
||
|
stopped |
Noms de tĂąches suspendues si le contrĂŽle des tĂąches est actif. |
||
|
user |
Noms dâutilisateur. Peut Ă©galement ĂȘtre indiquĂ©e avec -u . |
variable
Noms de toutes les variables de lâinterprĂ©teur. Peut Ă©galement ĂȘtre indiquĂ©e avec -v .
-C commande
La commande est exécutée dans un environnement de sous-interpréteur et sa sortie est utilisée comme complÚtements possibles. Les arguments sont fournis comme avec la fonction -F .
-F fonction
La fonction de lâinterprĂ©teur est exĂ©cutĂ©e dans lâinterprĂ©teur actuel. Lorsquâune fonction est exĂ©cutĂ©e, le premier argument ( $1 ) est le nom de la commande dont les arguments doivent ĂȘtre complĂ©tĂ©s, le deuxiĂšme argument ( $2 ) est le mot Ă complĂ©ter et le troisiĂšme argument ( $3 ) est le mot prĂ©cĂ©dant celui devant ĂȘtre complĂ©tĂ© sur la ligne de commande actuelle. Lorsquâelle finit, les complĂštements possibles sont rĂ©cupĂ©rĂ©s Ă partir de la valeur de la variable de type tableau COMPREPLY .
-G globpat
Le motif de développement des chemins globpat est développé pour produire les complÚtements possibles.
-P préfixe
préfixe est ajouté au début de chaque complÚtement possible aprÚs application de toutes les autres options.
-S suffixe
suffixe est ajouté à chaque complÚtement possible aprÚs application de toutes les autres options.
-W liste_de_mots
La liste_de_mots est dĂ©coupĂ©e en utilisant les caractĂšres de la variable spĂ©ciale IFS comme dĂ©limiteurs et chaque mot rĂ©sultant est dĂ©veloppĂ©. Les protections de lâinterprĂ©teur sont prises en compte Ă lâintĂ©rieur de la liste_de_mots , afin de fournir un mĂ©canisme pour que les mots puissent contenir des mĂ©tacaractĂšres ou des caractĂšres de lâinterprĂ©teur dans la valeur de IFS . Les complĂštements possibles sont les Ă©lĂ©ments de la liste rĂ©sultante qui correspondent au mot en cours de complĂštement.
-X motif_filtre
motif_filtre est un motif utilisé pour le développement des chemins. Il est appliqué à la liste des complÚtements possibles produite par les options et arguments précédents et chaque complÚtement correspondant à motif_filtre est supprimé de la liste. Un ! au début du motif_filtre inverse le motif ; dans ce cas, tout complÚtement qui ne correspond pas à motif_filtre est supprimé.
La valeur renvoyĂ©e est vrai, sauf si une option incorrecte a Ă©tĂ© fournie, si une option comme -p ou -r a Ă©tĂ© fournie sans un nom dâargument, si une tentative a Ă©tĂ© faite pour supprimer une spĂ©cification de complĂštement pour un nom pour lequel il nâexiste pas de spĂ©cification, ou si une erreur est survenue lors de lâajout dâune spĂ©cification de complĂštement.
compopt [ -o option ] [ -DEI ] [ +o option ] [ nom ]
Modifier les options de complĂštement pour chaque nom en fonction des option s, ou pour le complĂštement en cours dâexĂ©cution si aucun nom nâest fourni. Si aucune option nâest donnĂ©e, afficher les options de complĂštement pour chaque nom ou pour le complĂštement actuel. Les valeurs dâoptions possibles sont celles dĂ©crites ci-dessus pour la commande interne complete . Lâoption -D indique que les options restantes devraient sâappliquer Ă la commande de complĂštement par « dĂ©faut » ; câest-Ă -dire le complĂštement essayĂ© sur une commande pour laquelle aucun complĂštement nâa Ă©tĂ© prĂ©alablement dĂ©fini. Lâoption -E indique que les options fournies devraient sâappliquer au complĂštement de commande « vide » ; câest-Ă -dire le complĂštement essayĂ© sur une ligne vide. Lâoption I indique que les options fournies restantes devraient sâappliquer au complĂštement du premier mot de non affectation de la ligne ou aprĂšs un dĂ©limiteur de commande ; ou | , ce qui est habituellement le complĂštement dâun nom de commande.
La valeur renvoyĂ©e est vrai, Ă moins quâune option incorrecte ait Ă©tĂ© fournie, quâune tentative ait Ă©tĂ© faite pour modifier les options pour un nom pour lequel il nâexiste pas de spĂ©cification de complĂštement, ou bien quâune erreur de sortie soit survenue.
continue [ n ]
Reprendre lâexĂ©cution Ă lâitĂ©ration suivante dâune boucle for , while , until ou encore select . Si n est indiquĂ©, reprendre lâexĂ©cution Ă la n -iĂšme boucle imbriquĂ©e. n doit ĂȘtre â„ 1. Si n est supĂ©rieur au nombre de boucles imbriquĂ©es, lâexĂ©cution reprend Ă la boucle la plus externe (la boucle « au sommet »). La valeur renvoyĂ©e est 0 , Ă moins que n ne soit supĂ©rieur ou Ă©gal Ă 1 .
declare
[
-aAfFgiIlnrtux
] [
-p
]
[
nom
[
=
valeur
] ...]
typeset
[
-aAfFgiIlnrtux
] [
-p
]
[
nom
[
=
valeur
] ...]
DĂ©clarer des variables ou leur fournir des attributs. Si aucun nom nâest indiquĂ©, afficher les valeurs des variables. Lâoption -p affichera les attributs et les valeurs de chaque nom . Quand -p est utilisĂ©e avec des arguments nom , les options supplĂ©mentaires, Ă part -f et -F , sont ignorĂ©es. Quand -p est fourni sans argument nom , les attributs et valeurs de toutes les variables ayant des attributs indiquĂ©s par les options additionnelles seront affichĂ©s. Si aucune autre option nâest fournie avec -p , declare affichera les attributs et valeurs de toutes les variables de lâinterprĂ©teur. Lâoption -f limite lâaffichage aux fonctions de lâinterprĂ©teur. Lâoption -F empĂȘche lâaffichage des dĂ©finitions de fonctions : seuls le nom de la fonction et ses attributs sont affichĂ©s. Si lâoption dâinterprĂ©teur extdebug est activĂ©e en utilisant shopt , le nom du fichier source et le numĂ©ro de ligne oĂč chaque nom est dĂ©fini sont aussi affichĂ©s. Lâoption -F implique -f . Lâoption -g force la crĂ©ation ou la modification de variables avec une portĂ©e globale, mĂȘme si declare est exĂ©cutĂ©e dans une fonction de lâinterprĂ©teur. Elle est ignorĂ©e dans tous les autres cas. Lâoption -I fait que les variables locales hĂ©ritent des attributs (sauf de lâattribut nameref ) et prennent la valeur de nâimporte quelle variable existante du mĂȘme nom dans son environnement. Sâil nây a pas de variable existante, la variable locale est dĂ©truite dans un premier temps. Les options suivantes permettent de restreindre lâaffichage aux variables dotĂ©es de certains attributs ou de configurer les attributs des variables :
|
-a |
Chaque nom est une variable de type tableau indicé (consultez Tableaux ). above). |
||
|
-A |
Chaque nom est une variable de type tableau associatif (consultez Tableaux ). above). |
||
|
-f |
Utiliser seulement les noms de fonctions. |
||
|
-i |
La variable est traitĂ©e comme un entier ; lâĂ©valuation arithmĂ©tique (consultez ĂVALUATION ARITHMĂTIQUE above) est effectuĂ©e lorsquâune valeur est affectĂ©e Ă la variable. |
||
|
-l |
Quand cette variable contient une valeur, toutes les majuscules seront converties en minuscules. Lâattribut majuscule est dĂ©sactivĂ©. |
||
|
-n |
Donner Ă chaque nom lâattribut nameref , le rendant une rĂ©fĂ©rence de nom vers une autre variable. Cette autre variable est dĂ©finie par la valeur de nom . Toutes les rĂ©fĂ©rences, les affectations et les modifications dâattribut de nom , Ă part celles qui utilisent ou modifient lâattribut -n lui-mĂȘme, sont rĂ©alisĂ©es sur la variable rĂ©fĂ©rencĂ©e par la valeur de nom . Lâattribut -nameref ne peut pas ĂȘtre appliquĂ© aux variables de type tableau. |
||
|
-r |
Rendre les nom s accessibles en lecture seule. Plus aucune valeur ne pourra leur ĂȘtre affectĂ©e et ils ne pourront plus ĂȘtre dĂ©truits. |
||
|
-t |
Donner Ă chaque nom lâattribut trace . Les fonctions tracĂ©es hĂ©ritent des captures de DEBUG et RETURN de lâinterprĂ©teur appelant. Lâattribut trace nâa pas de signification spĂ©ciale pour les variables. |
||
|
-u |
Quand cette variable contient une valeur, toutes les minuscules seront converties en majuscules. Lâattribut minuscule est dĂ©sactivĂ©. |
||
|
-x |
Marquer les nom s pour quâils soit exportĂ©s dans lâenvironnement des commandes ultĂ©rieures. |
En utilisant « + » Ă la place de « - », lâattribut correspondant est dĂ©sactivĂ©, exceptĂ© que +a et +A ne peuvent pas ĂȘtre utilisĂ©s pour dĂ©truire une variable tableau et que +r nâenlĂšvera pas lâattribut lecture seule. Quand ils sont utilisĂ©s dans une fonction, declare et typeset rendent local chaque nom , comme avec la commande local sauf si lâoption -g est fournie. Si un nom de variable est suivi par = valeur , la valeur de cette variable est configurĂ©e Ă valeur . Lors de lâutilisation de -a ou -A et de la syntaxe dâaffectation composĂ©e pour crĂ©er des variables de type tableau, les attributs supplĂ©mentaires sont sans effet jusquâaux affectations suivantes. La valeur renvoyĂ©e est 0 , sauf si une option incorrecte est rencontrĂ©e, une tentative est faite de dĂ©finir une fonction en utilisant ââ-f foo=barââ, une tentative est faite pour affecter la valeur Ă une variable en lecture seule, une tentative est faite dâaffecter une valeur Ă une variable tableau sans employer la syntaxe dâaffectation composĂ©e (consultez Tableaux above), un des nom s nâest pas un nom correct pour une variable de lâinterprĂ©teur, une tentative est faite de supprimer lâattribut lecture seule dâune variable en lecture seule, une tentative est faite de supprimer lâattribut tableau dâune variable tableau ou une tentative est faite avec -f dâafficher une fonction inexistante.
dirs [ -clpv ] [ + n ] [ - n ]
Sans option, afficher la liste des rĂ©pertoires actuellement mĂ©morisĂ©s. Lâaffichage par dĂ©faut est rĂ©alisĂ© sur une seule ligne, les noms de rĂ©pertoires Ă©tant sĂ©parĂ©s par des espaces. Les rĂ©pertoires sont ajoutĂ©s Ă la liste avec la commande pushd et supprimĂ©s avec la commande popd . Le rĂ©pertoire courant est toujours le premier rĂ©pertoire de la pile.
|
-c |
Effacer la liste des répertoires en les supprimant tous. |
||
|
-l |
Produire une liste en utilisant les chemins complets ; le format dâaffichage par dĂ©faut utilise le tilde pour reprĂ©senter le rĂ©pertoire dâaccueil. |
||
|
-p |
Afficher la pile des répertoires avec un élément par ligne. |
||
|
-v |
Afficher la pile des rĂ©pertoires avec un Ă©lĂ©ment par ligne, en prĂ©fixant chaque entrĂ©e avec son numĂ©ro dâindice dans la pile. |
||
|
+ n |
Afficher le n -iĂšme Ă©lĂ©ment de la liste fournie par dirs , lorsquâappelĂ© sans options, en comptant Ă partir de la gauche en commençant Ă zĂ©ro. |
||
|
- n |
Afficher le n -iĂšme Ă©lĂ©ment de la liste fournie par dirs , lorsquâappelĂ© sans options, en comptant Ă partir de la droite en commençant Ă zĂ©ro. |
La valeur renvoyĂ©e est 0 , sauf si une option incorrecte a Ă©tĂ© fournie ou si lâindice n dĂ©passe la longueur de la pile des rĂ©pertoires.
disown [ -ar ] [ -h ] [ tĂąche ... | pid ... ]
Sans options, supprimer chaque tĂąche de la table des tĂąches actives. Si aucune tĂąche nâest prĂ©cisĂ©e et quâaucune des options -a ou -r nâest fournie, la tĂąche actuelle est utilisĂ©e. Si lâoption -h est indiquĂ©e, aucune tĂąche nâest supprimĂ©e de la table, mais chaque tĂąche est marquĂ©e pour que le signal SIGHUP ne lui soit pas envoyĂ© si lâinterprĂ©teur reçoit un signal SIGHUP . Si aucune tĂąche nâest fournie, lâoption -a signifie la suppression ou le marquage de toutes les tĂąches ; lâoption -r sans lâargument tĂąche restreint les opĂ©rations aux tĂąches en cours dâexĂ©cution. La valeur renvoyĂ©e est 0 , sauf si tĂąche nâindique pas une tĂąche correcte.
echo [ -neE ] [ arguments ...]
Afficher les arguments , sĂ©parĂ©s par des espaces, suivis par un saut de ligne. La valeur renvoyĂ©e est 0 sauf en cas dâerreur. Si -n est indiquĂ©, le changement de ligne final est supprimĂ©. Si lâoption -e est indiquĂ©e, lâinterprĂ©tation des caractĂšres de protection suivants par une contre-oblique est activĂ©e. Lâoption -E dĂ©sactive lâinterprĂ©tation de ces caractĂšres de protection, mĂȘme sur les systĂšmes oĂč ils sont interprĂ©tĂ©s par dĂ©faut. Lâoption dâinterprĂ©teur xpg_echo peut ĂȘtre utilisĂ©e dynamiquement pour dĂ©terminer si echo dĂ©veloppe ou non par dĂ©faut ces caractĂšres de protection. echo nâinterprĂšte pas -- comme signifiant la fin des options. echo reconnaĂźt les suites de caractĂšres de protection suivants :
|
\a |
alerte (alarme)Â ; |
||
|
\b |
espace arriĂšre |
||
|
\c |
supprime tout affichage suivant ; |
||
|
\e |
|||
|
\E |
caractÚre de protection ; |
||
|
\f |
saut de page (« form feed ») ; |
||
|
\n |
saut de ligne (« new line ») ; |
||
|
\r |
retour chariot |
||
|
\t |
tabulation horizontale |
||
|
\v |
tabulation verticale |
||
|
\\ |
contre-oblique ; |
||
|
\0 nnn |
le caractÚre 8 bits dont la valeur en octal est nnn (zéro à trois chiffres octaux) ; |
||
|
\x HH |
le caractÚre 8 bits dont la valeur hexadécimale est HH (un ou deux chiffres hexadécimaux) ; |
||
|
\u HHHH |
le caractÚre Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHH (un à quatre chiffres hexadécimaux) ; |
\U HHHHHHHH
le caractÚre Unicode (ISO/IEC 10646) dont la valeur hexadécimale est HHHHHHHH (un à huit chiffres hexadécimaux) ;
enable [ -a ] [ -dnps ] [ -f fichier ] [ nom ...]
Activer ou dĂ©sactiver les commandes internes de lâinterprĂ©teur. DĂ©sactiver une commande interne permet dâexĂ©cuter une commande disque ayant le mĂȘme nom quâune commande interne de lâinterprĂ©teur, sans avoir Ă indiquer un chemin dâaccĂšs complet, mĂȘme quand lâinterprĂ©teur recherche normalement les commandes internes avant les commandes du disque. Si -n est utilisĂ©, chaque nom indiquĂ© est dĂ©sactivĂ©, sinon ils sont activĂ©s. Par exemple, pour utiliser le programme binaire test qui se trouve dans PATH plutĂŽt que la commande interne, utilisez ââenable -n testââ. Lâoption -f demande de charger la nouvelle commande interne avec le nom indiquĂ© depuis le fichier objet partagĂ© sur les systĂšmes qui le permettent. bash utilisera la valeur de la variable BASH_LOADABLES_PATH comme une liste sĂ©parĂ©e par des deux-points dans laquelle rechercher le fichier . La valeur par dĂ©faut dĂ©pend du systĂšme. Lâoption -d permet de supprimer une commande interne chargĂ©e prĂ©cĂ©demment avec -f . Si aucun argument nom nâest indiquĂ© ou si lâoption -p est fournie, une liste des commandes internes de lâinterprĂ©teur est affichĂ©e. Sans autre option, la liste est celle des commandes internes actives de lâinterprĂ©teur. Si -n est fournie, seules les commandes dĂ©sactivĂ©es sont affichĂ©es. Si -a est fournie, la liste de toutes les commandes est affichĂ©e, avec une indication des activations et dĂ©sactivations. Si -s est fournie, la sortie est limitĂ©e aux commandes internes spĂ©ciales POSIX. Si aucune option nâest fournie et si nom nâest pas une commande interne de lâinterprĂ©teur, enable tentera de charger nom Ă partir dâun objet partagĂ© nommĂ© nom comme si la commande Ă©tait ââenable -f name name . La valeur renvoyĂ©e est 0 Ă moins que nom ne soit pas une commande interne de lâinterprĂ©teur 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 regroupĂ©s en une seule commande simple. Cette commande est alors lue et exĂ©cutĂ©e par lâinterprĂ©teur et son Ă©tat final est renvoyĂ© comme valeur de la commande eval . Sâil nây a pas dâ arguments ou uniquement des arguments NULL, eval renvoie 0.
exec [ -cl ] [ -a nom ] [ commande [ arguments ]]
Si une commande est indiquĂ©e, elle remplace lâinterprĂ©teur. Aucun nouveau processus nâest créé. Les arguments deviennent ceux de la commande . Si lâoption -l est fournie, lâinterprĂ©teur place un tiret en guise de zĂ©roiĂšme argument fourni Ă la commande . Câest ce que fait login (1). Lâoption -c conduit Ă lâexĂ©cution de la commande avec un environnement vide. Si lâoption -a est fournie, lâinterprĂ©teur transmet le nom comme zĂ©roiĂšme argument. Si la commande ne peut ĂȘtre exĂ©cutĂ©e pour une raison quelconque, un interprĂ©teur non interactif termine, sauf si lâoption de lâinterprĂ©teur execfail est activĂ©e. Dans ce cas, une erreur est renvoyĂ©e. Un interprĂ©teur interactif renvoie une erreur si le fichier ne peut pas ĂȘtre exĂ©cutĂ©. Un sous-interprĂ©teur termine sans conditions si exec Ă©choue. Si aucune commande nâest indiquĂ©e, les Ă©ventuelles redirections sont mises en place dans lâinterprĂ©teur actuel et lâĂ©tat renvoyĂ© est 0 . Sâil y a une erreur de redirection, lâĂ©tat renvoyĂ© est 1 .
exit [ n ]
Termine lâinterprĂ©teur avec un Ă©tat de n . Si n est omis, lâĂ©tat final est celui de la derniĂšre commande exĂ©cutĂ©e. Une capture sur EXIT est exĂ©cutĂ©e avant que lâinterprĂ©teur ne se termine.
export
[
-fn
]
[
nom
[=
mot
]] ...
export -p
Les nom s fournis sont marquĂ©s pour ĂȘtre exportĂ©s automatiquement dans lâenvironnement des commandes exĂ©cutĂ©es par la suite. Si lâoption -f est indiquĂ©e, les nom s se rapportent Ă des fonctions. Si aucun nom nâest donnĂ© ou si lâoption -p est fournie, une liste de noms de toutes les variables exportĂ©es est affichĂ©e. Lâoption -n conduit Ă supprimer lâattribut dâexportation de toutes les variables nom mĂ©es. Si un nom de variable est suivi par = mot , la valeur de la variable est configurĂ©e Ă mot . export renvoie un Ă©tat final de 0 , sauf si une option incorrecte est rencontrĂ©e, si un des nom s nâest pas un nom correct de variable de lâinterprĂ©teur, ou si lâoption -f est fournie avec un nom qui nâest pas une fonction.
fc
[
-e
éditeur
] [
-lnr
]
[
premiĂšre
] [
derniĂšre
]
fc -s
[
motif
=
nouveau
]
[
commande
]
La premiĂšre forme sĂ©lectionne un intervalle de commandes de la premiĂšre Ă la derniĂšre dans la file dâhistorique et lâaffiche ou lâĂ©dite pour les rĂ©exĂ©cuter. La premiĂšre et la derniĂšre peuvent ĂȘtre indiquĂ©es sous forme de chaĂźnes (pour trouver la derniĂšre commande commençant par cette chaĂźne) ou sous forme numĂ©rique (un indice dans la file dâhistorique oĂč un nombre nĂ©gatif est utilisĂ© comme dĂ©calage par rapport au numĂ©ro de la commande actuelle). Sur la liste, une premiĂšre ou une derniĂšre de valeur 0 est Ă©quivalente Ă -1 , et -0 est Ă©quivalent Ă la commande actuelle (habituellement la commande fc ) ; autrement, 0 est Ă©quivalent Ă -1 et -0 nâest pas valable. Si la derniĂšre nâest pas indiquĂ©e, elle est configurĂ©e Ă la commande actuelle si lâon veut afficher la liste (ainsi ââfc -l -10ââ affiche les 10 derniĂšres commandes) et Ă lâidentique de la premiĂšre sinon. Si la premiĂšre nâest pas indiquĂ©e, elle est configurĂ©e Ă la commande prĂ©cĂ©dente pour une Ă©dition et Ă Â -16 pour lâaffichage de liste.
Lâoption -n supprime lâaffichage des numĂ©ros dans la liste. Lâoption -r inverse lâordre des commandes. Si lâoption -l est indiquĂ©e, les commandes sont affichĂ©es sur la sortie standard. Sinon, lâ Ă©diteur indiquĂ© est appelĂ© avec un fichier contenant les commandes sĂ©lectionnĂ©es. Si aucun Ă©diteur nâest indiquĂ©, on utilise la valeur de la variable FCEDIT et la valeur de EDITOR si FCEDIT nâexiste pas. Si aucune variable nâexiste, vi est utilisĂ©. Lorsque lâĂ©dition se termine, les commandes sont affichĂ©es puis exĂ©cutĂ©es.
Dans la seconde forme, la commande est rĂ©exĂ©cutĂ©e aprĂšs avoir remplacĂ© chaque instance du motif par nouveau . commande est interprĂ©tĂ©e de la mĂȘme façon que premiĂšre ci-dessus. Un alias utile pour cela est ââr="fc -s"ââ, ainsi en tapant ââr ccââ on relance la derniĂšre commande commençant par ââccââ et en tapant âârââ on rĂ©exĂ©cute la commande prĂ©cĂ©dente.
Lorsque la premiĂšre forme est utilisĂ©e, la valeur renvoyĂ©e est 0 , sauf si une option incorrecte est trouvĂ©e ou si premiĂšre ou derniĂšre indiquent des lignes dâhistorique hors dâatteinte. Si lâoption -e est fournie, la valeur renvoyĂ©e est celle de la derniĂšre commande exĂ©cutĂ©e ou un Ă©chec si une erreur sâest produite avec le fichier temporaire des commandes. Avec la seconde forme, lâĂ©tat renvoyĂ© est celui de la commande rĂ©exĂ©cutĂ©e, sauf si commande nâindique pas une ligne correcte de lâhistorique, auquel cas fc renvoie un Ă©chec.
fg [ tĂąche ]
Reprendre la tĂąche au premier plan qui devient la tĂąche actuelle. Si aucune tĂąche nâest prĂ©cisĂ©e, lâinterprĂ©teur utilise la notion de tĂąche actuelle . La valeur renvoyĂ©e est celle de la commande placĂ©e au premier plan ou un Ă©chec si le contrĂŽle des tĂąches est dĂ©sactivĂ© ou, lorsque le contrĂŽle des tĂąches est activĂ©, si la tĂąche nâindique pas une tĂąche correcte ou si la tĂąche indique une tĂąche lancĂ©e sans contrĂŽle des tĂąches.
getopts chaĂźne_d_options nom [ arguments ... ]
getopts est utilisĂ© par les scripts dâinterprĂ©teur pour analyser les paramĂštres positionnels. La chaĂźne_d_options contient lâensemble des caractĂšres dâoptions Ă reconnaĂźtre ; si un caractĂšre est suivi par un deux-points, lâoption est censĂ©e avoir un argument, qui devrait en ĂȘtre sĂ©parĂ© par une espace. Les caractĂšres deux-points et le point dâinterrogation ne peuvent pas ĂȘtre utilisĂ©s comme caractĂšres dâoption. Ă chaque appel, getopts place lâoption suivante dans la variable de lâinterprĂ©teur dont le nom est fourni, en la crĂ©ant si elle nâexiste pas et lâindice de lâargument suivant Ă traiter dans la variable OPTIND . OPTIND est initialisĂ©e Ă 1 Ă chaque appel dâun interprĂ©teur ou dâun script. Quand une option nĂ©cessite un argument, getopts place cet argument dans la variable OPTARG . LâinterprĂ©teur ne rĂ©initialise pas OPTIND automatiquement, il faut le faire manuellement entre des appels multiples Ă getopts au sein du mĂȘme appel dâinterprĂ©teur si un nouveau jeu de paramĂštres doit ĂȘtre utilisĂ©.
Lorsque la fin des options est atteinte, getopts termine avec une valeur renvoyĂ©e strictement supĂ©rieure Ă zĂ©ro. OPTIND est positionnĂ© Ă lâindice du premier argument obligatoire et un point dâinterrogation ( ? ) est placĂ© dans la variable nom .
getopts analyse en principe les paramĂštres positionnels, mais si plus dâarguments sont indiquĂ©s comme valeur dâ arguments , getopts analysera ces derniers Ă la place.
getopts peut signaler des erreurs de deux façons. Si le premier caractĂšre de la chaĂźne_d_options est un deux-points, les erreurs sont signalĂ©es de façon silencieuse . Lors dâun fonctionnement normal, des messages de diagnostic sont affichĂ©s si une option est incorrecte ou sâil manque un argument dâoption. Si la variable OPTERR est configurĂ©e Ă 0 , aucun message dâerreur ne sera affichĂ©, mĂȘme si le premier caractĂšre de la chaĂźne_d_options nâest pas un deux-points.
Si une option incorrecte est rencontrĂ©e, getopts place un point dâinterrogation ( ? ) dans la variable nom , affiche un message dâerreur (sâil nâest pas en mode silencieux) et dĂ©truit la variable OPTARG . Si getopts fonctionne en mode silencieux, le caractĂšre dâoption est placĂ© dans OPTARG et aucun message de diagnostic nâest affichĂ©.
Lorsquâun argument dâoption nĂ©cessaire est absent et si getopts nâest pas silencieux, un point dâinterrogation ( ? ) est placĂ© dans la variable nom , OPTARG est dĂ©truite et un message de diagnostic est affichĂ©. Si getopts est silencieux, un deux-points ( : ) est placĂ© dans la variable nom et OPTARG est positionnĂ© Ă lâoption monocaractĂšre trouvĂ©e.
getopts renvoie vrai si une option, indiquée ou non, est trouvée. Il renvoie faux si la fin des options est atteinte ou si une erreur se produit.
hash [ -lr ] [ -p fichier ] [ -dt ] [ nom ]
Chaque fois que hash est invoquĂ©e, le chemin dâaccĂšs complet de la commande nom est dĂ©terminĂ© en examinant les rĂ©pertoires de $PATH , et mĂ©morisĂ©. Tous les chemins prĂ©cĂ©demment mĂ©morisĂ©s sont supprimĂ©s. Si lâoption -p est fournie, aucune recherche de chemin dâaccĂšs nâest effectuĂ©e et le fichier est utilisĂ© comme chemin dâaccĂšs complet pour la commande. Lâoption -r conduit lâinterprĂ©teur Ă oublier tous les emplacements mĂ©morisĂ©s. Lâoption -d conduit lâinterprĂ©teur Ă oublier tous les emplacements mĂ©morisĂ©s de chaque nom . Si lâoption -t est fournie, le chemin dâaccĂšs complet de chaque nom correspondant est affichĂ©. Si plusieurs arguments nom sont fournis avec -t , le nom est affichĂ© avant chaque chemin dâaccĂšs complet associĂ©. Lâoption -l conduit Ă afficher la sortie dans un format rĂ©utilisable en entrĂ©e. Si aucun argument nâest indiquĂ© ou si seulement -l est fournie, des informations sur les commandes mĂ©morisĂ©es sont affichĂ©es. La valeur renvoyĂ©e est vrai, sauf si nom nâest pas trouvĂ© ou si une option incorrecte est fournie.
help [ -dms ] [ motif ]
Afficher des informations dâaide au sujet des commandes internes. Si un motif est indiquĂ©, help fournit de lâaide sur toutes les commandes internes correspondant Ă ce motif , sinon, une liste des commandes internes et des structures de contrĂŽle de lâinterprĂ©teur est affichĂ©e.
|
-d |
Afficher une courte description de chaque motif . |
||
|
-m |
Afficher la description de chaque motif dans un format du type pages de manuel. |
||
|
-s |
Afficher seulement un court synopsis dâutilisation de chaque motif . |
LâĂ©tat renvoyĂ© est 0 , sauf si aucune commande ne correspond au motif .
history
[
n
]
history -c
history -d
nombre
history -d
début
-
fin
history -anrw
[
fichier
]
history -p
argument
[
argument ...
]
history -s
argument
[
argument ...
]
Sans options, afficher la liste des commandes de la file dâhistorique, avec les numĂ©ros de ligne. Les lignes marquĂ©es avec un * ont Ă©tĂ© modifiĂ©es. Un argument n permet de nâafficher que les n derniĂšres lignes. Si la variable de lâinterprĂ©teur HISTTIMEFORMAT existe et nâest pas NULL, elle est utilisĂ©e comme chaĂźne de format pour strftime (3) afin dâafficher lâhorodatage associĂ© Ă chaque Ă©lĂ©ment de lâhistorique. Aucun blanc ne sĂ©pare lâhorodatage ainsi mis en forme de la ligne dâhistorique. Si un argument fichier est fourni, il est utilisĂ© comme nom de fichier dâhistorique ; sinon la valeur de HISTFILE est utilisĂ©e. Les options, si fournies, ont les significations suivantes :
|
-c |
Effacer la file de lâhistorique en supprimant tous les Ă©lĂ©ments. |
-d nombre
Supprimer lâentrĂ©e dâhistorique Ă la position nombre . Si nombre estnĂ©gatif, il est interprĂ©tĂ© comme relatif Ă un nombre plus grand que celui de la derniĂšre position de lâhistorique, ainsi les indices nĂ©gatifs comptent Ă rebours depuis la fin de lâhistorique et un indice -1 fait rĂ©fĂ©rence Ă la commande history -d actuelle.
-d début - fin
Supprimer la plage dâentrĂ©es dâhistorique entre les positions dĂ©but et fin incluses. Les valeurs positives et nĂ©gatives pour dĂ©but et fin sont interprĂ©tĂ©es comme dĂ©crites ci-dessus.
|
-a |
Ajouter les « nouvelles » lignes dâhistorique. Ce sont celles créées depuis le dĂ©but de la session actuelle de bash , mais pas dĂ©jĂ ajoutĂ©es dans le fichier dâhistorique. |
||
|
-n |
Lire dans le fichier dâhistorique les lignes non encore lues et les ajouter Ă la file dâhistorique actuelle. Il sâagit des lignes qui ont Ă©tĂ© ajoutĂ©es dans le fichier dâhistorique depuis le dĂ©but de la session bash . |
||
|
-r |
Lire le contenu du fichier et lâajouter Ă lâhistorique actuel. |
||
|
-w |
Ăcrire la liste actuelle dâhistorique dans le fichier dâhistorique, en Ă©crasant le contenu prĂ©cĂ©dent. |
||
|
-p |
Effectuer la substitution dâhistorique sur les argument s suivants et afficher le rĂ©sultat sur la sortie standard. Ne pas mĂ©moriser les rĂ©sultats dans la file dâhistorique. Chaque argument doit ĂȘtre protĂ©gĂ© pour dĂ©sactiver le dĂ©veloppement normal de lâhistorique. |
||
|
-s |
Conserver les argument s dans la file dâhistorique comme un unique Ă©lĂ©ment. La derniĂšre commande de la file dâhistorique est supprimĂ©e avant que les argument s ne soient ajoutĂ©s. |
Si la variable HISTTIMEFORMAT existe, les informations dâhorodatage associĂ©es Ă chaque Ă©lĂ©ment de lâhistorique sont Ă©crites dans le fichier dâhistorique, repĂ©rĂ©es par le caractĂšre de commentaire dâhistorique. Quand le fichier dâhistorique est lu, les lignes commençant par le caractĂšre de commentaire dâhistorique suivi immĂ©diatement par un chiffre sont considĂ©rĂ©s comme des horodatages de la ligne dâhistorique prĂ©cĂ©dente. La valeur renvoyĂ©e est 0 , sauf si une option incorrecte est fournie, si une erreur se produit durant la lecture ou lâĂ©criture du fichier, si une plageou un nombre incorrects sont fournis comme argument Ă -d ou si le dĂ©veloppement de lâhistorique fourni en argument Ă -p Ă©choue.
jobs
[
-lnprs
] [
tĂąche
... ]
jobs -x
commande
[
arguments
... ]
La premiÚre forme affiche la liste des tùches actives. Les options ont les significations suivantes :
|
-l |
Afficher les PID, en plus des informations normales. |
||
|
-n |
Afficher uniquement des informations sur les tĂąches dont lâĂ©tat a changĂ© depuis la derniĂšre notification de leur Ă©tat Ă lâutilisateur. |
||
|
-p |
Afficher uniquement le PID du meneur du groupe de processus de la tĂąche. |
||
|
-r |
Nâafficher que les tĂąches en cours dâexĂ©cution. |
||
|
-s |
Nâafficher que les tĂąches suspendues. |
Si une tĂąche est indiquĂ©e, lâaffichage est restreint aux informations relatives Ă cette tĂąche. LâĂ©tat renvoyĂ© est 0 , sauf si une option incorrecte est rencontrĂ©e ou si une tĂąche incorrecte est fournie.
Si lâoption -x est fournie, jobs remplace toute tĂąche trouvĂ©e dans la commande ou dans ses arguments avec les Process Group ID correspondant, puis il exĂ©cute la commande en lui transmettant les arguments et en renvoyant son Ă©tat final.
kill
[
-s
signal
|
-n
num-signal
|
-
signal
] [
pid
|
tĂąche
] ...
kill -l
|
-L
[
signal
|
état_final
]
Envoyer le signal indiquĂ© par signal ou num-signal aux processus indiquĂ©s par pid ou par tĂąche . signal est soit sous la forme de nom de signal (indiffĂ©rent Ă la casse), comme SIGKILL (avec ou sans le prĂ©fixe SIG ), soit sous forme numĂ©rique ; num-signal est un numĂ©ro de signal. Si signal est absent, SIGTERM est supposĂ© par dĂ©faut. Un argument -l provoque lâaffichage de la liste des noms de signaux. Si des arguments sont fournis quand -l est indiquĂ©, les noms des signaux correspondant aux arguments sont affichĂ©s et lâĂ©tat renvoyĂ© est 0 . Lâargument Ă©tat_final de lâoption -l est un nombre indiquant soit un numĂ©ro de signal, soit lâĂ©tat final dâun processus terminĂ© par un signal. Lâoption -L est Ă©quivalente de -l . kill renvoie vrai si au moins un signal a Ă©tĂ© envoyĂ© avec succĂšs ou faux si une erreur sâest produite ou si une option incorrecte a Ă©tĂ© rencontrĂ©e.
let argument [ argument ...]
Chaque argument est une expression arithmĂ©tique Ă Ă©valuer (consultez ĂVALUATION ARITHMĂTIQUE ci-dessus). above). Si lâĂ©valuation du dernier argument donne 0 , let renvoie 1 ; sinon 0 est renvoyĂ©.
local [ option ] [ nom [= valeur ] ...] - ]
Pour chaque argument, une variable locale nom est créée et la valeur lui est affectĂ©e. Lâ option peut ĂȘtre nâimporte quelle option acceptĂ©e par declare . Quand local est utilisĂ© dans une fonction, la variable nom possĂšde une portĂ©e visible restreinte Ă cette fonction et ses enfants. Si nom est - , les options de lâinterprĂ©teur sont rĂ©glĂ©es Ă locales pour la fonction dans laquelle local est invoquĂ©e : les options de lâinterprĂ©teur, modifiĂ©es en utilisant la commande interne set dans la fonction, sont restaurĂ©es Ă leur valeur originale quand la fonction redonne la main. La restauration est effectuĂ©e comme si une sĂ©rie de commandes set avaient Ă©tĂ© exĂ©cutĂ©es pour restaurer les valeurs qui Ă©taient en place avant la fonction. Sans opĂ©randes, local affiche la liste des variables locales sur la sortie standard. Une utilisation de local hors des fonctions est erronĂ©e. La valeur renvoyĂ©e est 0 , sauf si local est utilisĂ© hors dâune fonction, si un nom incorrect est fourni ou si nom est une variable en lecture seule.
|
logout |
Terminer un interpréteur de connexion. |
mapfile
[
-d
délimiteur
] [
-n
nombre
]
[
-O
origine
] [
-s
nombre
]
[
-t
] [
-u
df
] [
-C
rappel
] [
-c
quantum
]
[
tableau
]
readarray
[
-d
délimiteur
]
[
-n
nombre
] [
-O
origine
]
[
-s
nombre
] [
-t
] [
-u
df
] [
-C
rappel
] [
-c
quantum
]
[
tableau
]
Lire les lignes depuis lâentrĂ©e standard dans la variable de type tableau indicĂ© tableau , ou depuis le descripteur de fichier df si lâoption -u est fournie. La variable MAPFILE est le tableau par dĂ©faut. Les options, si fournies, ont les significations suivantes :
|
-d |
Le premier caractĂšre de dĂ©limiteur est utilisĂ© pour terminer la ligne de saisie, plutĂŽt quâun changement de ligne. Si dĂ©limiteur est une chaĂźne vide, mapfile termine une ligne quand il lit un caractĂšre NUL. |
||
|
-n |
Copier au plus nombre lignes. Si nombre est 0, toutes les lignes sont copiées. |
||
|
-O |
Commencer lâaffectation de tableau Ă lâindice origine . Lâindice par dĂ©faut est 0 . |
||
|
-s |
Supprimer les nombre premiĂšres lignes lues. |
||
|
-t |
Ăliminer un dĂ©limiteur final (par dĂ©faut changement de ligne ) de chaque ligne lue. |
||
|
-u |
Lire les lignes Ă partir du descripteur de fichier df plutĂŽt que depuis lâentrĂ©e standard. |
||
|
-C |
Ăvaluer rappel Ă chaque fois que quantum lignes sont lues. Lâoption -c prĂ©cise le quantum . |
||
|
-c |
Préciser le nombre de lignes entre chaque appel à rappel . |
Si -C est prĂ©cisĂ© sans -c , le quantum par dĂ©faut est 5000. Quand rappel est Ă©valuĂ©, lâindice du prochain Ă©lĂ©ment de tableau Ă affecter et la ligne Ă affecter Ă cet Ă©lĂ©ment sont fournis en arguments supplĂ©mentaires. rappel est Ă©valuĂ© aprĂšs la lecture de la ligne, mais avant lâaffectation de lâĂ©lĂ©ment de tableau.
Si aucune origine explicite nâest fournie, mapfile effacera tableau avant de lui affecter des valeurs.
mapfile termine avec succĂšs sauf si une option ou un de ses arguments nâest pas valable, ou si tableau nâest pas valable, nâest pas un tableau indicĂ© ou si son affectation est impossible.
popd [ -n ] [ + n ] [ - n ]
Enlever des éléments de la pile des répertoires. Les éléments sont numérotés à partir de 0 avec le premier répertoire listé par dirs . Sans argument popd supprime le répertoire du sommet de la pile et un cd est effectué en direction du nouveau répertoire au sommet. Les arguments, si fournis, ont les significations suivantes :
|
-n |
EmpĂȘcher le changement normal de rĂ©pertoire lors de la suppression dâun rĂ©pertoire de la pile. Seule la pile est manipulĂ©e. |
||
|
+ n |
Supprimer de la pile le n -iĂšme Ă©lĂ©ment de la liste affichĂ©e par dirs , en comptant depuis la gauche Ă partir de zĂ©ro. Par exemple : ââpopd +0ââ enlĂšve le premier rĂ©pertoire, ââpopd +1ââ le second. |
||
|
- n |
Supprimer le n -iĂšme Ă©lĂ©ment de la liste affichĂ©e par dirs , en comptant depuis la droite Ă partir de zĂ©ro. Par exemple : ââpopd -0ââ supprime le dernier rĂ©pertoire et ââpopd -1ââ lâavant-dernier. |
Si lâĂ©lĂ©ment au sommet de la pile de rĂ©pertoires est modifiĂ© et si lâoption n nâest pas fournie, popd utilise la commande interne cd pour changer vers le rĂ©pertoire au sommet de la pile. Si cd Ă©choue, popd renvoie une valeur diffĂ©rente de zĂ©ro.
Autrement, popd renvoie faux si une option incorrecte est trouvée, si la pile de répertoires est vide ou si une pile de répertoires absente est indiquée.
Si la commande popd rĂ©ussit, bash effectue un dirs pour afficher le contenu final de la pile de rĂ©pertoires et lâĂ©tat renvoyĂ© est 0 .
printf [ -v var ] format [ arguments ]
Ăcrire les arguments mis en forme sur la sortie standard sous le contrĂŽle du format . Lâoption -v conduit Ă affecter la sortie Ă la variable var plutĂŽt que de lâafficher sur la sortie standard.
Ce format est une chaĂźne de caractĂšres contenant trois types dâobjets : les caractĂšres normaux, qui sont simplement copiĂ©s sur la sortie standard, les caractĂšres de protection qui sont convertis puis copiĂ©s sur la sortie standard et les spĂ©cifications de format, qui conduisent chacun Ă lâaffichage des arguments successifs. En plus des spĂ©cifications de format standard de printf (1), printf interprĂšte les extensions suivantes :
|
%b |
conduit printf Ă dĂ©velopper les suites de caractĂšres de protection dans lâ argument correspondant de la mĂȘme maniĂšre que echo -e . |
||
|
%q |
conduit printf Ă afficher lâ argument correspondant dans un format rĂ©utilisable en entrĂ©e de lâinterprĂ©teur ; |
||
|
%Q |
comme %q , mais applique toute prĂ©cision fournie Ă lâ argument avant de le protĂ©ger. |
%( formatdate )T
conduit printf Ă afficher la chaĂźne date-heure rĂ©sultant de lâutilisation de formatdate en tant que chaĂźne de format pour strftime (3). Lâ argument correspondant est un entier reprĂ©sentant le temps en seconde Ă©coulĂ© depuis epoch. Deux valeurs particuliĂšres dâargument peuvent ĂȘtre utilisĂ©es : -1 reprĂ©sente lâheure actuelle et -2 lâheure Ă laquelle lâinterprĂ©teur a Ă©tĂ© invoquĂ©. Si aucun argument nâest indiquĂ©, la conversion se comporte comme si -1 avait Ă©tĂ© fourni. Câest une exception au comportement habituel de printf .
Les directives %b, %q et %T utilisent toutes les arguments de largeur et de prĂ©cision de champ Ă partir de la spĂ©cification de format et Ă©crivent autant dâoctets que lâargument dĂ©veloppĂ© (ou utilisent autant dâespace quâun champ pour cet argument) qui contient habituellement plus de caractĂšres que lâoriginal.
Les arguments des spĂ©cificateurs de format qui ne sont pas des chaĂźnes sont traitĂ©s comme des constantes C, sauf quâun signe plus ou moins est permis au dĂ©but, et que, si le premier caractĂšre est un guillemet simple ou double, la valeur est la valeur ASCII du caractĂšre suivant.
Le format est rĂ©utilisĂ© si nĂ©cessaire pour englober tous les arguments . Si le format demande plus dâ arguments que fournis, les spĂ©cifications supplĂ©mentaires se comportent comme si une valeur zĂ©ro ou une chaĂźne NULL, suivant le besoin, avaient Ă©tĂ© fournies. La valeur renvoyĂ©e est zĂ©ro en cas de succĂšs, diffĂ©rente de zĂ©ro en cas dâĂ©chec.
pushd
[
-n
]
[+
n
] [-
n
]
pushd
[
-n
] [
rép
]
Ajouter un répertoire au sommet de la pile des répertoires ou effectuer une rotation dans la pile, en ramenant le répertoire actuel au sommet. Sans argument, la commande pushd échange les deux éléments au sommet de la pile des répertoires. Les arguments, si fournis, ont les significations suivantes :
|
-n |
EmpĂȘcher le changement normal de rĂ©pertoire lors dâune rotation ou dâun ajout de rĂ©pertoires dans la pile. Ainsi, seule la pile est manipulĂ©e. |
||
|
+ n |
Effectuer une rotation dans la pile, de façon à amener au sommet le n -iÚme répertoire (de la liste affichée par dirs , en comptant depuis la gauche à partir de zéro). |
||
|
- n |
Effectuer une rotation dans la pile, de façon à amener au sommet le n -iÚme répertoire (de la liste affichée par dirs , en comptant depuis la gauche à partir de zéro). |
||
|
rép |
Ajouter répertoire au sommet de la pile des répertoires |
AprĂšs que la pile a Ă©tĂ© modifiĂ©e, si lâoption -n nâa pas Ă©tĂ© fournie, pushd utilise la commande interne cd pour changer vers le rĂ©pertoire au sommet de la pile. Si cd Ă©choue, pushd renvoie une valeur diffĂ©rente de zĂ©ro.
Autrement, si aucun argument nâest fourni, pushd renvoie 0 sauf si la pile des rĂ©pertoires est vide. Lors dâune rotation de la pile des rĂ©pertoires, pushd renvoie 0 sauf si la pile est vide ou si un Ă©lĂ©ment inexistant dans la pile est indiquĂ©.
Si la commande pushd réussit, bash effectue un dirs pour montrer le contenu final de la pile du répertoire.
pwd [ -LP ]
Afficher le chemin dâaccĂšs absolu au rĂ©pertoire de travail actuel. Le chemin ne contiendra pas de liens symboliques si lâoption -P est fournie, ou si lâoption -o physical de la commande interne set est activĂ©e. Si lâoption -L est utilisĂ©e, le chemin affichĂ© peut contenir des liens symboliques. LâĂ©tat renvoyĂ© est 0 , sauf si une erreur sâest produite lors de la lecture du nom du rĂ©pertoire actuel ou si une option incorrecte est fournie.
read
[
-ers
]
[
-a
tableau
] [
-d
délimiteur
] [
-i
texte
]
[
-n
nb_car
] [
-N
nb_car
] [
-p
invite
] [
-t
délai
] [
-u
df
] [
nom
...]
Une ligne est lue depuis
lâentrĂ©e standard ou Ă partir du
descripteur de fichier
df
fourni en argument Ă
lâoption
-u
, découpée en mots
comme décrit above dans
Découpage en
mots
, puis le premier mot de cette ligne est
affecté au premier
nom
, le second mot au
second
nom
, et ainsi de suite. Sâil y a plus de
mots que de noms, les mots restants et leurs
séparateurs intercalaires sont affectés au
dernier
nom
. Sâil y a moins de mots lus dans le
flux dâentrĂ©e que de variables, des valeurs
vides sont affectées à celles restantes. Les
caractĂšres contenus dans la variable
IFS
sont utilisés pour
découper la ligne en mots en utilisant les
mĂȘmes rĂšgles que celles utilisĂ©es par
lâinterprĂ©teur pour le dĂ©veloppement
(décrites above dans
Découpage en
mots
). Le caractĂšre contre-oblique
(
\
)
permet de supprimer toute signification
spéciale pour le caractÚre suivant et autorise
la continuation de ligne. Les options, si fournies, ont les
significations suivantes :
-a
tableau
Les mots sont affectĂ©s aux indices successifs dâune variable tableau de nom tableau , en commençant Ă 0 . tableau est dĂ©truit avant que de nouvelles valeurs ne soient affectĂ©es. Les autres arguments nom sont ignorĂ©s.
-d délimiteur
Le premier caractĂšre de dĂ©limiteur est utilisĂ© pour terminer la ligne de saisie, plutĂŽt quâun changement de ligne. Si dĂ©limiteur est une chaĂźne vide, mapfile termine une ligne quand il lit un caractĂšre NUL.
|
-e |
Si lâentrĂ©e standard provient dâun terminal, la bibliothĂšque readline (consultez READLINE above) est utilisĂ©e pour obtenir la ligne. Readline utilise les configurations dâĂ©dition en cours (ou par dĂ©faut, si lâĂ©dition de ligne nâĂ©tait pas prĂ©alablement active), mais utilise le complĂštement de nom de fichier par dĂ©faut de readline . |
-i texte
Si readline est utilisĂ©e pour lire la ligne, texte est placĂ© dans le tampon dâĂ©dition avant le dĂ©but de lâĂ©dition.
-n nb_car
read sâarrĂȘte aprĂšs avoir lu nb_car caractĂšres plutĂŽt que dâattendre une ligne complĂšte en entrĂ©e, mais un dĂ©limiteur est respectĂ© si moins de nb_car caractĂšres ont Ă©tĂ© lus avant le dĂ©limiteur.
-N nb_car
read sâarrĂȘte aprĂšs avoir lu exactement nb_car caractĂšres plutĂŽt que dâattendre une ligne complĂšte en entrĂ©e, sauf si une fin de fichier (EOF) est rencontrĂ©e ou si read dĂ©passe son dĂ©lai de rĂ©ponse. Les dĂ©limiteurs rencontrĂ©s en entrĂ©e ne sont pas traitĂ©s spĂ©cialement et nâentraĂźnent pas la fin de read avant que nb_car caractĂšres nâaient Ă©tĂ© lus. Le rĂ©sultat pas dĂ©coupĂ© selon les caractĂšres dans IFS ; le but est que la variable soit exactement des caractĂšres lus (Ă lâexception du caractĂšre contre-oblique ; consultez ci-dessous lâoption -r ).
-p invite
Afficher invite sur la sortie dâerreur standard, sans caractĂšre final de changement de ligne, avant dâessayer de lire toute nouvelle saisie. Lâinvite est affichĂ©e seulement si lâentrĂ©e vient dâun terminal.
|
-r |
La contre-oblique nâagit pas comme un caractĂšre de protection. La contre-oblique est considĂ©rĂ©e comme faisant partie de la ligne. En particulier, une contre-oblique suivie dâun changement de ligne ne peut pas ĂȘtre considĂ©rĂ©e comme une continuation de ligne. |
||
|
-s |
Mode silencieux. Si une entrĂ©e arrive Ă partir dâun terminal, les caractĂšres ne sont pas affichĂ©s. |
||
|
-t m |
Conduire read Ă expirer et renvoyer un Ă©chec si une ligne complĂšte en entrĂ©e (ou un nombre indiquĂ© de caractĂšres) nâa pas Ă©tĂ© lue dans le dĂ©lai en seconde. dĂ©lai est un nombre dĂ©cimal avec Ă©ventuellement des chiffres aprĂšs la virgule (NdT : point en lâoccurrence). Cette option nâest effective que si read lit lâentrĂ©e Ă partir dâun terminal, dâun tube, ou depuis un autre fichier spĂ©cial ; elle nâa aucun effet lors de la lecture dâun fichier normal. Si read expire, read sauvegarde toute entrĂ©e partielle lue dans la variable nom indiquĂ©e. Si dĂ©lai est nul, read se termine immĂ©diatement, sans essayer de lire des donnĂ©es. LâĂ©tat de sortie est 0 si une entrĂ©e est disponible pour le descripteur de fichier indiquĂ©, ou la lecture renverra EOF , non nulle sinon. LâĂ©tat final est supĂ©rieur Ă 128 si le dĂ©lai est dĂ©passĂ©. |
||
|
-u df |
Lire lâentrĂ©e Ă partir du descripteur de fichier df . |
Si aucun nom nâest fourni, la ligne lue, sans autre modification que le retrait du dĂ©limiteur de fin, est affectĂ©e Ă la variable REPLY . Le code renvoyĂ© est zĂ©ro, sauf si une fin de fichier (EOF) est rencontrĂ©e, si read dĂ©passe son dĂ©lai de rĂ©ponse (auquel cas le code renvoyĂ© est plus grand que 128), en cas dâerreur dâaffectation (comme une affectation de variable Ă une variable en lecture seule) ou si un descripteur de fichier incorrect est fourni en argument de -u .
readonly [ -aAf ] [ -p ] [ nom [ = mot ] ...]
Les nom s indiquĂ©s reçoivent un attribut lecture seule ; les valeurs de ces nom s ne pourront plus ĂȘtre modifiĂ©es par des affectations ultĂ©rieures. Si lâoption -f est fournie, les fonctions correspondant Ă ces nom s sont marquĂ©es en consĂ©quence. Lâoption -a restreint lâaction aux variables tableaux indicĂ©s ; lâoption -A restreint lâaction aux variables tableaux associatifs. Si les deux options sont fournies, -A est prioritaire. Si aucun argument nom nâest indiquĂ© ou si lâoption -p est fournie, une liste de tous les noms en lecture seule est affichĂ©e. Les autres options peuvent ĂȘtre utilisĂ©es pour restreindre lâaffichage Ă un sous-ensemble de lâensemble des noms en lecture seule. Lâoption -p conduit Ă afficher la sortie dans un format susceptible dâĂȘtre rĂ©utilisĂ© en entrĂ©e. Si le nom dâune variable est suivi par = mot , la variable est configurĂ©e Ă mot . LâĂ©tat renvoyĂ© est 0 , sauf si une option incorrecte a Ă©tĂ© rencontrĂ©e, si lâun des nom s nâest pas un nom correct de variable de lâinterprĂ©teur ou si lâoption -f est fournie avec un nom qui nâest pas une fonction.
return [ n ]
Forcer une fonction Ă arrĂȘter son exĂ©cution et Ă renvoyer la valeur indiquĂ©e par n dans son contexte dâappel. Si n est omis, la valeur de retour renvoyĂ©e est celle de la derniĂšre commande exĂ©cutĂ©e dans le corps de la fonction. Si return est exĂ©cutĂ© par un gestionnaire de capture, la derniĂšre commande utilisĂ©e pour dĂ©terminer lâĂ©tat est la derniĂšre commande exĂ©cutĂ©e avant le gestionnaire de capture. Si return est exĂ©cutĂ©e durant une capture de DEBUG , la derniĂšre commande utilisĂ©e pour dĂ©terminer lâĂ©tat est la derniĂšre commande exĂ©cutĂ©e par le gestionnaire de capture avant que return soit invoquĂ©e. Si return est utilisĂ©e hors dâune fonction, mais pendant lâexĂ©cution dâun script par la commande . ( source ), elle conduit Ă lâarrĂȘt de lâexĂ©cution du script par lâinterprĂ©teur et renvoie comme Ă©tat final du script soit n , soit lâĂ©tat final de la derniĂšre commande exĂ©cutĂ©e dans le script. Si n est fourni, la valeur de retour est ses 8 bits de poids faible. La valeur de retour est non nulle si un argument non numĂ©rique est fourni Ă return , ou si elle est utilisĂ©e hors dâune fonction ou pas lors de lâexĂ©cution dâun script par . ou source . Toute commande associĂ©e Ă la capture de RETURN est exĂ©cutĂ©e avant la reprise de lâexĂ©cution aprĂšs la fonction ou le script.
set
[
-abefhkmnptuvxBCEHPT
] [
-o
nom_d_option
] [
--
] [
-
] [
argument
...]
set
[
+abefhkmnptuvxBCEHPT
] [
+o
nom_d_option
] [
--
] [
-
] [
argument
...]
Sans options, afficher le nom et la valeur de toutes les variables de lâinterprĂ©teur dans un format susceptible dâĂȘtre rĂ©utilisĂ© en entrĂ©e pour crĂ©er ou rĂ©initialiser les variables actuelles. Les variables en lecture seule ne peuvent pas ĂȘtre rĂ©initialisĂ©es. En mode POSIX , seules les variables de lâinterprĂ©teur sont affichĂ©es. La sortie est triĂ©e en fonction des paramĂštres linguistiques rĂ©gionaux actuels. Lorsque des options sont indiquĂ©es, elles crĂ©ent ou dĂ©truisent des attributs de lâinterprĂ©teur. Tous les argument s restant aprĂšs traitement des options sont considĂ©rĂ©s comme des valeurs pour les paramĂštres positionnels et sont affectĂ©s, dans lâordre, Ă Â : $1 , $2 , ... $ n . Les options, si indiquĂ©es, ont les significations suivantes :
|
-a |
Donner lâattribut export aux variables et fonctions créées ou modifiĂ©es et les marquer pour quâelles soient exportĂ©es dans lâenvironnement des commandes exĂ©cutĂ©es ultĂ©rieurement. |
||
|
-b |
Signaler lâĂ©tat des tĂąches terminĂ©es en arriĂšre-plan immĂ©diatement, plutĂŽt que dâattendre lâaffichage de la prochaine invite de base. Nâest effectif que si le contrĂŽle des tĂąches est activĂ©. |
||
|
-e |
Se terminer immĂ©diatement si un pipeline (qui peut ĂȘtre rĂ©duit Ă une unique commande simple ), une liste ou une commande composĂ©e (consultez GRAMMAIRE DE LâINTERPRĂTEUR above), se termine avec un Ă©tat diffĂ©rent de zĂ©ro. LâinterprĂ©teur ne se termine pas si la commande qui Ă©choue fait partie dâune liste de commandes suivant immĂ©diatement un mot clef while ou until , dâun test suivant les mots rĂ©servĂ©s if ou elif , dâune commande exĂ©cutĂ©e dans une liste && ou || sauf si la commande est situĂ©e aprĂšs le dernier && ou || , dâune commande de pipeline Ă lâexception de la derniĂšre, ou si la valeur renvoyĂ©e par la commande est inversĂ©e par ! . Si une commande composĂ©e autre quâun sous-interprĂ©teur renvoie un Ă©tat non nul parce quâune commande Ă©choue alors que -e Ă©tait ignorĂ©, lâinterprĂ©teur ne se termine pas. Une capture sur ERR , si existante, est exĂ©cutĂ©e avant que lâinterprĂ©teur ne se termine. Cette option sâapplique Ă lâenvironnement de lâinterprĂ©teur ainsi quâĂ lâenvironnement de chaque sous-interprĂ©teur individuellement (consultez ENVIRONNEMENT DâEXĂCUTION DES COMMANDES above), et peut conduire des sous-interprĂ©teurs Ă se terminer avant dây avoir exĂ©cutĂ© toutes les commandes. |
Si une commande composĂ©e ou une fonction de lâinterprĂ©teur sâexĂ©cutent dans un contexte oĂč -e est ignorĂ©, aucune des commandes exĂ©cutĂ©es dans une commande composĂ©e ou dans un corps de fonction ne sera affectĂ©e par le rĂ©glage -e , mĂȘme si -e est dĂ©fini et quâune commande renvoie un Ă©tat dâĂ©chec. Si une commande composĂ©e ou une fonction de lâinterprĂ©teur dĂ©finissent -e pendant son exĂ©cution dans un contexte oĂč -e est ignorĂ©, ce rĂ©glage nâaura aucun effet avant la fin de la commande composĂ©e ou de la commande contenant lâappel de fonction.
|
-f |
Désactiver le développement des chemins. |
||
|
-h |
MĂ©moriser lâemplacement des commandes lors de leur exĂ©cution. ActivĂ©e par dĂ©faut. |
||
|
-k |
Tous les arguments sous la forme dâaffectations sont placĂ©s dans lâenvironnement dâune commande, et non pas seulement ceux qui prĂ©cĂšdent le nom de la commande. |
||
|
-m |
Mode supervision. Le contrĂŽle des tĂąches est activĂ©. Cette option est activĂ©e par dĂ©faut pour les interprĂ©teurs interactifs sur les systĂšmes qui le permettent (consultez CONTRĂLE DES TĂCHES above). Tous les processus sont exĂ©cutĂ©s dans un groupe de processus sĂ©parĂ©. Quand une tĂąche en arriĂšre-plan se termine, lâinterprĂ©teur affiche une ligne contenant son Ă©tat final. |
||
|
-n |
Lecture de commandes sans exĂ©cution. Cela peut ĂȘtre utilisĂ© pour rechercher les erreurs de syntaxe dans un script. Cette option est ignorĂ©e par les interprĂ©teurs interactifs. |
-o nom_d_option
Le
nom_d_option
est
lâun des suivants :
allexport
Identique Ă -a .
braceexpand
Identique Ă -B .
|
emacs |
Utiliser une interface dâĂ©dition des lignes de commande « à la Emacs ». Câest le comportement activĂ© par dĂ©faut quand lâinterprĂ©teur est interactif, sauf si lâinterprĂ©teur est dĂ©marrĂ© avec lâoption --noediting . Lâinterface dâĂ©dition utilisĂ©e par read -e est modifiĂ©e Ă©galement. |
||
|
errexit |
Identique Ă -e . |
errtrace
Identique Ă -E .
functrace
Identique Ă -T .
|
hashall |
Identique Ă -h . |
histexpand
Identique Ă -H .
|
history |
Activer lâhistorique des commandes, comme dĂ©crit above dans HISTORY . Cette option est activĂ©e par dĂ©faut dans les interprĂ©teurs interactifs. |
ignoreeof
Identique Ă lâexĂ©cution de la commande dâinterprĂ©teur ââIGNOREEOF=10ââ a Ă©tĂ© exĂ©cutĂ©e (consultez Variables de lâinterprĂ©teur above).
|
keyword |
Identique Ă -k . |
|||
|
monitor |
Identique Ă -m . |
noclobber
Identique Ă -C .
|
noexec |
Identique Ă -n . |
|||
|
noglob |
Identique Ă -f . |
|||
|
nolog |
Actuellement ignorée. |
|||
|
notify |
Identique Ă -b . |
|||
|
nounset |
Identique Ă -u . |
|||
|
onecmd |
Identique Ă -t . |
physical
Identique Ă -P .
pipefail
Si existante, la valeur renvoyée par un pipeline est la valeur de la derniÚre commande (la plus à droite) à terminer avec un état final différent de zéro ou zéro si toutes les commandes du pipeline terminent avec succÚs. Désactivée par défaut.
|
posix |
Aligner le comportement de bash sur la norme ( mode POSIX ), en ce qui concerne les options dont lâaction par dĂ©faut diffĂšre de la norme POSIX. La section VOIR AUSSI below ci-dessous rĂ©fĂ©rence un document prĂ©cisant la façon dont le mode POSIX affecte le comportement de bash . |
privileged
Identique Ă -p .
|
verbose |
Identique Ă -v . |
||
|
vi |
Utiliser une interface dâĂ©dition des lignes de commande « à la vi ». Lâinterface dâĂ©dition utilisĂ©e par read -e est modifiĂ©e Ă©galement. |
||
|
xtrace |
Identique Ă -x . |
Si -o est fournie sans nom_d_option , les valeurs actuelles des options sont affichĂ©es. Si +o est fournie sans nom_d_option , la sĂ©rie de commandes set permettant de recrĂ©er la configuration actuelle dâoptions est affichĂ©e sur la sortie standard.
|
-p |
Basculer en mode privilĂ©giĂ© . Dans ce mode, les fichiers $ENV et $BASH_ENV ne sont pas traitĂ©s, les fonctions de lâinterprĂ©teur ne sont pas hĂ©ritĂ©es de lâenvironnement, et les variables SHELLOPTS , BASHOPTS , CDPATH , et GLOBIGNORE , si prĂ©sentes dans lâenvironnement, sont ignorĂ©es. Si lâinterprĂ©teur dĂ©marre avec un UID (ou respectivement un GID) effectif diffĂ©rent de son UID (GID) rĂ©el et si lâoption -p nâest pas fournie, ce comportement est appliquĂ© et lâUID (GID) effectif est positionnĂ© Ă lâUID (GID) rĂ©el. Si lâoption -p est fournie au dĂ©marrage, lâUID (GID) effectif nâest pas modifiĂ©. DĂ©sactiver cette option conduit Ă la configuration des UID et GID effectifs Ă la valeur des UID et GID rĂ©els. |
||
|
-r |
Activer le mode interprĂ©teur restreint. Cette option ne peut ĂȘtre annulĂ©e une fois quâelle a Ă©tĂ© dĂ©finie.â |
||
|
-t |
Terminer aprĂšs lecture et exĂ©cution dâune commande. |
||
|
-u |
ConsidĂ©rer les variables inexistantes et les paramĂštres diffĂ©rents des paramĂštres spĂ©ciaux « @ » et « * », ou les variables tableau indicĂ©es par @ ou * , comme des erreurs lors du dĂ©veloppement des paramĂštres. Si un dĂ©veloppement de variable inexistante ou de paramĂštre est tentĂ©, lâinterprĂ©teur affiche un message dâerreur et, sâil nâest pas interactif, termine avec un Ă©tat diffĂ©rent de zĂ©ro. |
||
|
-v |
Afficher les lignes en entrĂ©e de lâinterprĂ©teur lorsquâelles sont lues. |
||
|
-x |
AprÚs le développement de chaque commande simple , commande for , commande case , commande select ou commande for arithmétique, afficher la valeur développée de PS4 , suivie de la commande et ses arguments développés ou la liste de mots associés. |
||
|
-B |
LâinterprĂ©teur effectue le dĂ©veloppement des accolades (consultez DĂ©veloppement des accolades above). ActivĂ©e par dĂ©faut. |
||
|
-C |
Si configurĂ©e, bash nâĂ©crasera pas un fichier existant avec les opĂ©rateurs > , >& et <> . Ce comportement peut ĂȘtre surpassĂ© lors de la crĂ©ation dâun fichier de sortie en utilisant lâopĂ©rateur de redirection >| Ă la place de > . |
||
|
-E |
Si configurĂ©e, toute capture sur ERR est hĂ©ritĂ©e par les fonctions dâinterprĂ©teur, les substitutions de commandes et les commandes exĂ©cutĂ©es dans un sous-interprĂ©teur. La capture de ERR nâest normalement pas hĂ©ritĂ©e dans de tels cas. |
||
|
-H |
Activer le style ! de substitution dâhistorique. Câest le comportement par dĂ©faut lorsque lâinterprĂ©teur est interactif. |
||
|
-P |
Si configurĂ©e, lâinterprĂ©teur ne rĂ©sout pas les liens symboliques en exĂ©cutant des commandes comme cd qui modifient le rĂ©pertoire de travail. Il utilise Ă la place le rĂ©pertoire physique. Par dĂ©faut bash suit la chaĂźne logique des rĂ©pertoires lors des commandes qui modifient le rĂ©pertoire actuel. |
||
|
-T |
Si configurĂ©e, toutes les captures de DEBUG et RETURN sont hĂ©ritĂ©es par les fonctions de lâinterprĂ©teur, les substitutions de commande et les commandes exĂ©cutĂ©es dans un sous-interprĂ©teur. Les captures de DEBUG et RETURN ne sont normalement pas hĂ©ritĂ©es dans de tels cas. |
||
|
-- |
Si aucun argument ne suit cette option, alors les paramĂštres positionnels sont dĂ©truits. Sinon, les paramĂštres positionnels sont configurĂ©s aux arguments , mĂȘme si certains dâentre eux commencent par un - . |
||
|
- |
Marquer la fin des options, tous les arguments restants sont alors affectĂ©s aux paramĂštres positionnels. Les options -x et -v sont dĂ©sactivĂ©es. Sâil nây a pas dâ arguments , les paramĂštres positionnels ne sont pas modifiĂ©s. |
Par dĂ©faut les attributs sont dĂ©sactivĂ©s, sauf indication contraire. En utilisant « + » Ă la place de « - », les options sont dĂ©sactivĂ©es. Les options peuvent Ă©galement ĂȘtre fournies en argument lors de lâappel de lâinterprĂ©teur. Le jeu actuel des options peut ĂȘtre trouvĂ© dans $- . La valeur renvoyĂ©e est toujours vrai, sauf si une option incorrecte est rencontrĂ©e.
shift [ n ]
Les paramĂštres positionnels Ă partir de n +1 ... sont renommĂ©s en $1 ... . Les paramĂštres reprĂ©sentĂ©s par les nombres $# jusquâĂ $# - n +1 sont dĂ©truits. n doit ĂȘtre un entier positif infĂ©rieur ou Ă©gal Ă $# . Si n vaut 0 , aucun paramĂštre nâest modifiĂ©. Si n est omis, on suppose quâil vaut 1. Si n est supĂ©rieur Ă $# , les paramĂštres positionnels ne sont pas modifiĂ©s. LâĂ©tat renvoyĂ© est strictement positif si n est supĂ©rieur Ă $# ou strictement nĂ©gatif, sinon 0 est renvoyĂ©.
shopt [ -pqsu ] [ -o ] [ nom_opt ...]
Basculer la valeur des rĂ©glages contrĂŽlant le comportement de gestion des options de lâinterprĂ©teur. Les rĂ©glages peuvent soit ĂȘtre ceux ci-dessous, soit, si lâoption -o est utilisĂ©e, ceux disponibles avec lâoption -o de la commande interne set . Sans option ou avec lâoption -p , une liste de toutes les options configurables est affichĂ©e, avec lâindication de lâĂ©tat de chacune dâentre elles ; si des nom_opt sont fournis, la sortie est limitĂ©e Ă ces options. Lâoption -p conduit Ă un affichage de la sortie sous une forme susceptible dâĂȘtre rĂ©utilisĂ©e en entrĂ©e. Les autres options ont les significations suivantes :
|
-s |
Activer (créer) chaque nom_opt . |
||
|
-u |
Désactiver (détruire) chaque nom_opt . |
||
|
-q |
Supprimer la sortie normale (mode silencieux) ; lâĂ©tat renvoyĂ© indique si nom_opt est existante ou non. Si plusieurs arguments nom_opt sont indiquĂ©s avec -q , lâĂ©tat renvoyĂ© est zĂ©ro si tous les nom_opt sont activĂ©s ; diffĂ©rent de zĂ©ro sinon. |
||
|
-o |
Restreindre les valeurs de nom_opt Ă celles dĂ©finies pour lâoption -o de la commande interne set . |
Si lâoption -s ou -u est utilisĂ©e sans argument nom_opt , shopt affiche respectivement les options existantes ou non existantes. Sauf indication contraire, les options shopt sont dĂ©sactivĂ©es (dĂ©truites) par dĂ©faut.
LâĂ©tat renvoyĂ© lors dâun affichage des options est zĂ©ro si tous les nom_opt sont activĂ©s, diffĂ©rent de zĂ©ro sinon. Lors de la crĂ©ation ou de la destruction dâoptions, lâĂ©tat renvoyĂ© est zĂ©ro, Ă moins que nom_opt ne soit pas une option correcte dâinterprĂ©teur.
La liste des
options
shopt
est :
assoc_expand_once
Si existante, lâinterprĂ©teur supprime les Ă©valuation multiples des indices de tableaux associatifs pendant lâĂ©valuation dâexpressions arithmĂ©tiques, lors de lâexĂ©cution de commandes internes qui peuvent affecter des variables et lors de lâexĂ©cution de commandes internes qui rĂ©alisent un dĂ©rĂ©fĂ©rencement de tableau.
|
autocd |
Si existante, un nom de commande qui est le nom dâun rĂ©pertoire est exĂ©cutĂ© comme sâil Ă©tait lâargument de la commande interne cd . Cette option nâest utilisĂ©e que par les interprĂ©teurs interactifs. |
cdable_vars
Si existante, un argument de la commande interne cd qui nâest pas un rĂ©pertoire est supposĂ© ĂȘtre un nom de variable dont la valeur est le rĂ©pertoire visĂ©.
|
cdspell |
Si existante, les erreurs minimes de frappe dans un composant du rĂ©pertoire en argument de la commande cd seront corrigĂ©es. Les erreurs corrigĂ©es sont les inversions dâun caractĂšre, un caractĂšre manquant et un caractĂšre en trop. Si une correction est possible, le nom de rĂ©pertoire corrigĂ© est affichĂ© et la commande est exĂ©cutĂ©. Cette option nâest utilisĂ©e que par les interprĂ©teurs interactifs. |
checkhash
Si existante, bash vĂ©rifie si une commande trouvĂ©e dans la table de hachage existe avant dâessayer de lâexĂ©cuter. Si une commande hachĂ©e nâexiste plus, une recherche normale de chemin est effectuĂ©e.
checkjobs
Si existante, bash affiche la liste des Ă©tats de toutes les tĂąches en cours et arrĂȘtĂ©es avant de terminer un interprĂ©teur interactif. Si des tĂąches sont en cours, la sortie est diffĂ©rĂ©e jusquâĂ ce quâune nouvelle sortie soit tentĂ©e sans commande intermĂ©diaire (consultez CONTRĂLE DES TĂCHES above). LâinterprĂ©teur repousse toujours la sortie si des tĂąches sont arrĂȘtĂ©es.
checkwinsize
Si existante, bash vĂ©rifie la taille de la fenĂȘtre aprĂšs chaque commande externe et, au besoin, met Ă jour les valeurs des variables LINES et COLUMNS .
|
cmdhist |
Si existante, bash essaie de sauvegarder les commandes sâĂ©tendant sur plusieurs lignes en un seul Ă©lĂ©ment dâhistorique. Cela facilite lâĂ©dition ultĂ©rieure de commandes multilignes. Cette option est activĂ©e par dĂ©faut, mais nâa un effet que si lâhistorique des commandes est activĂ©, comme dĂ©crit above dans HISTORY . |
compat31
compat32
compat40
compat41
compat42
compat43
compat44
compat50
Ces directives contrĂŽlent les aspects du mode de compatibilitĂ© de lâinterprĂ©teur (consultez MODE DE COMPATIBILITĂ DE LâINTERPRĂTEUR below).
complete_fullquote
Si existante, bash protĂšge tous les mĂ©tacaractĂšres de lâinterprĂ©teur dans les noms de fichier et de rĂ©pertoire lors du complĂštement. Si non existante, bash supprime les mĂ©tacaractĂšres comme les signes dollar du jeu de caractĂšres qui sera protĂ©gĂ© dans les noms de fichiers complĂ©tĂ©s quand ces mĂ©tacaractĂšres apparaissent dans des rĂ©fĂ©rences de variable dâinterprĂ©teur dans des mots Ă complĂ©ter. Cela signifie que les signes dollar dans les noms de variables qui se dĂ©veloppent en rĂ©pertoires ne seront pas protĂ©gĂ©s ; cependant, tous les signes dollar apparaissant dans les noms de fichier ne seront pas protĂ©gĂ©s non plus. Ce nâest actif que si bash utilise des contre-obliques pour protĂ©ger des noms de fichier complĂ©tĂ©s. Cette variable est dĂ©finie par dĂ©faut, ce qui est le comportement de bash par dĂ©faut jusquâĂ la version 4.2.
direxpand
Si existante, bash remplace les noms de rĂ©pertoire par les rĂ©sultats de dĂ©veloppement de mots lors du complĂštement des noms de fichier. Cela modifie le contenu du tampon dâĂ©dition de readline . Sinon, bash essaye de conserver ce que lâutilisateur a tapĂ©.
dirspell
Si existante, bash essaie de corriger les erreurs de frappe sur les noms de rĂ©pertoire lors du complĂštement de mot si le nom de rĂ©pertoire initialement fourni nâexiste pas.
|
dotglob |
Si existante, bash inclut les noms de fichiers commençant par un « . » dans les rĂ©sultats des dĂ©veloppements de chemins. Les noms de fichier « . » et « .. » doivent toujours ĂȘtre toujours ĂȘtre mis en correspondance explicitement, mĂȘme si dotglob existe. |
execfail
Si existante, un interprĂ©teur non interactif ne terminera pas sâil ne peut exĂ©cuter un fichier indiquĂ© en argument de la commande interne exec . Un interprĂ©teur interactif ne termine pas si exec Ă©choue.
expand_aliases
Si existante, les alias sont développés comme décrit above dans ALIAS . Cette option est activée par défaut pour les interpréteurs interactifs.
extdebug
Si elle existe Ă lâappel de lâinterprĂ©teur ou dans un fichier de lancement de lâinterprĂ©teur, prend les dispositions pour que le paramĂ©trage du traçage soit exĂ©cutĂ© avant que lâinterprĂ©teur dĂ©marre, identique Ă lâoption --debugger . Si elle est posĂ©e aprĂšs lâappel, le comportement prĂ©vu pour lâutilisation du traçage est activé :
|
1. |
Lâoption -F de la commande interne declare affiche le nom du fichier source et le numĂ©ro de ligne correspondant Ă chaque nom de fonction fourni comme argument. |
||
|
2. |
Si la commande lancĂ©e par la capture de DEBUG renvoie une valeur diffĂ©rente de zĂ©ro, la commande suivante est sautĂ©e et nâest pas exĂ©cutĂ©e. |
||
|
3. |
Si la commande lancĂ©e par la capture de DEBUG renvoie la valeur 2 et si lâinterprĂ©teur sâexĂ©cute dans un sous-programme (une fonction de lâinterprĂ©teur ou un script exĂ©cutĂ© par les commandes internes . ou source ), lâinterprĂ©teur simule un appel Ă return . |
||
|
4. |
BASH_ARGC et BASH_ARGV sont mises à jour comme expliqué dans leurs descriptions. above). |
||
|
5. |
Le traçage des fonctions est activé : la substitution de commande, les fonctions de lâinterprĂ©teur et les sous-interprĂ©teurs appelĂ©s avec ( command ) hĂ©ritent des captures de DEBUG et RETURN . |
||
|
6. |
Le traçage dâerreur est activé : la substitution de commande, les fonctions de lâinterprĂ©teur et les sous-interprĂ©teurs appelĂ©s avec ( command ) hĂ©ritent de la capture de ERR . |
||
|
extglob |
Si existante, les fonctionnalités étendues de mise en correspondance décrites above dans Développement des chemins sont activées.
extquote
Si existante, la protection par $ ' chaĂźne ' et $ " chaĂźne " est effectuĂ©e Ă lâintĂ©rieur des dĂ©veloppements de ${ paramĂštres } entre guillemets doubles. Cette option est activĂ©e par dĂ©faut.
failglob
Si existante, les motifs qui Ă©chouent Ă faire correspondre les noms de fichiers pendant le dĂ©veloppement des chemins font quâils provoqueront une erreur de dĂ©veloppement.
force_fignore
Si existante, les suffixes indiquĂ©s par la variable de lâinterprĂ©teur FIGNORE conduiront des mots Ă ĂȘtre ignorĂ©s lors du complĂštement de mot, mĂȘme si les mots ignorĂ©s sont les seuls complĂštements possibles. Consultez VARIABLES DE LâINTERPRĂTEUR above pour une description de FIGNORE . Cette option est activĂ©e par dĂ©faut.
globasciiranges
Si existante, les expressions dâintervalle utilisĂ©es dans les motifs de correspondance des expressions entre crochets (consultez Motifs gĂ©nĂ©riques above) se comportent comme avec les paramĂštres rĂ©gionaux traditionnels de C lors des comparaisons. Cela signifie que lâordre de collation des paramĂštres rĂ©gionaux actuels nâest pas pris en compte, donc b ne sera pas ordonnĂ© entre A et B , et les caractĂšres ASCII en majuscule et minuscule seront fusionnĂ©s.
globskipdots
Si existante, le dĂ©veloppement des chemins ne sera jamais mis en correspondance avec les noms de fichier « . » et « .. », mĂȘme si le motif dĂ©bute par un « . ». Cette option est activĂ©e par dĂ©faut.
globstar
Si existante, le motif ** utilisé dans un contexte de développement des chemins correspondra à tous les fichiers et zéro ou plusieurs répertoires et sous-répertoires. Si le motif est suivi de / , seuls les répertoires et sous-répertoires correspondent.
gnu_errfmt
Si existante, les messages dâerreur de lâinterprĂ©teur seront Ă©crits dans le format standard GNU des messages dâerreurs.
histappend
Si existante, la file dâhistorique est ajoutĂ©e au fichier dĂ©signĂ© par la valeur de la variable HISTFILE lorsque lâinterprĂ©teur termine, plutĂŽt que dâĂ©craser ce fichier.
histreedit
Si existante et si readline est utilisĂ©e, un utilisateur peut rééditer une substitution dâhistorique qui a Ă©chouĂ©.
histverify
Si existante et si readline est utilisĂ©e, le rĂ©sultat de la substitution dâhistorique nâest pas transmise immĂ©diatement Ă lâanalyseur de lâinterprĂ©teur. Ă la place, la ligne rĂ©sultante est chargĂ©e dans le tampon dâĂ©dition de readline , permettant des modifications ultĂ©rieures.
hostcomplete
Si existante et si readline est utilisĂ©e, bash essayera dâeffectuer le complĂštement des noms de machines lorsquâun mot contient un @ (consultez ComplĂštement dans READLINE above). Cette option est activĂ©e par dĂ©faut.
huponexit
Si existante, bash enverra un signal SIGHUP Ă toutes les tĂąches lorsquâun interprĂ©teur de connexion interactif termine.
inherit_errexit
Si existante, la substitution de commande hĂ©rite de la valeur de lâoption errexit , plutĂŽt que de la dĂ©truire dans lâenvironnement du sous-interprĂ©teur. Cette option est activĂ©e quand le mode POSIX est activĂ©.
interactive_comments
Si existante, un mot commençant par un # conduira ce mot et tous les autres caractĂšres restants de la ligne Ă ĂȘtre ignorĂ©s dans un interprĂ©teur interactif (consultez COMMENTAIRES above). Cette option est activĂ©e par dĂ©faut.
lastpipe
Si existante, et que le contrĂŽle des tĂąches nâest pas activĂ©, lâinterprĂ©teur exĂ©cute la derniĂšre commande dâun pipeline non exĂ©cutĂ©e en arriĂšre-plan dans lâenvironnement dâinterprĂ©teur actuel.
|
lithist |
Si existante et si lâoption cmdhist est activĂ©e, les commandes multilignes sont sauvegardĂ©es dans lâhistorique avec des changements de ligne incorporĂ©s comme sĂ©parateurs plutĂŽt que des points-virgules lĂ oĂč câest possible. |
localvar_inherit
Si existante, les variables locales hĂ©ritent de la valeur et des attributs dâune variable du mĂȘme nom qui existe avec une portĂ©e antĂ©rieure avant quâune nouvelle valeur soit assignĂ©e. Lâattribut -nameref nâest pas hĂ©ritĂ©.
localvar_unset
Si existante, appeler unset sur des variables locales dans des portĂ©es de fonction antĂ©rieures les marque de telle maniĂšre que des recherches ultĂ©rieures les trouve dĂ©sactivĂ©es jusquâĂ ce la fonction renvoie. Ce comportement est le mĂȘme que de dĂ©truire les variables locales avec la portĂ©e de la fonction actuelle.
login_shell
LâinterprĂ©teur crĂ©e cette option sâil est dĂ©marrĂ© en tant quâinterprĂ©teur de connexion (consultez APPEL above). La valeur ne peut ĂȘtre modifiĂ©e.
mailwarn
Si existante et sâil a Ă©tĂ© accĂ©dĂ© Ă un fichier que bash surveille pour les courriers depuis sa derniĂšre vĂ©rification, le message « Le courrier dans fichier_de_courrier a Ă©tĂ© lu. » est affichĂ©.
no_empty_cmd_completion
Si existante et si readline est utilisĂ©e, bash nâessaiera pas dâutiliser le PATH pour de possibles complĂštements quand le complĂštement est tentĂ© sur une ligne vide.
nocaseglob
Si existante, bash fait correspondre les noms de fichiers dâune façon insensible Ă la casse lors du dĂ©veloppement des chemins (consultez DĂ©veloppement des chemins above).
nocasematch
Si existante, bash fait correspondre les motifs dâune façon insensible Ă la casse lors de la mise en correspondance pendant lâexĂ©cution des commandes conditionnelles case ou [[ , lorsquâil procĂšde Ă des dĂ©veloppements de motif de substitution de mot ou quâil filtre des complĂštement possibles dans le cadre dâun complĂštement programmable.
noexpand_translation
Si existante, bash entoure les rĂ©sultats de la traduction de la protection de $ " ... " par des guillemets simples au lieu de guillemets doubles. Si la chaĂźne nâest pas traduite, cela nâa aucun effet.
nullglob
Si existante, bash autorise les motifs ne correspondant Ă aucun fichier (consultez DĂ©veloppement des chemins above) Ă se dĂ©velopper en une chaĂźne NULL plutĂŽt quâen une valeur littĂ©rale.
patsub_replacement
Si existante, bash développe les occurrences de & dans la chaßne de remplacement de la substitution de motif vers le texte mis en correspondance par le motif, comme décrit dans Développement des paramÚtres above. Cette option est activée par défaut.
progcomp
Si existante, les outils de complÚtement programmables (consultez ComplÚtement programmable above) sont activés. Cette option est activée par défaut.
progcomp_alias
Si existante et si le complĂštement programmable est activĂ©, bash traite un nom de commande qui nâa pas de complĂštement comme un possible alias et tente un dĂ©veloppement dâalias. Sâil possĂšde un alias, bash tente un complĂštement programmable en utilisant le nom de commande rĂ©sultant du dĂ©veloppement dâalias.
promptvars
Si existante, les chaĂźnes dâinvite sont sujettes au dĂ©veloppement des paramĂštres, Ă la substitution de commande, au dĂ©veloppement arithmĂ©tique et Ă la suppression des protections aprĂšs avoir Ă©tĂ© dĂ©veloppĂ©es comme dĂ©crit dans INVITES . above. Cette option est activĂ©e par dĂ©faut.
restricted_shell
LâinterprĂ©teur dĂ©finit cet option sâil dĂ©marre en mode restreint (consultez INTERPRĂTEUR RESTREINT below). Cette valeur ne peut pas ĂȘtre changĂ©e. Elle nâest pas rĂ©initialisĂ©e lorsque les fichiers dâinitialisation sont exĂ©cutĂ©s, ce qui permet Ă ces fichiers de dĂ©couvrir si un interprĂ©teur est restreint ou non.
shift_verbose
Si existante, la commande interne shift affiche un message dâerreur lorsque le nombre de dĂ©calages dĂ©passe le nombre de paramĂštres positionnels.
sourcepath
Si existante, la commande interne source ( . ) utilise la valeur de la variable PATH pour trouver le répertoire contenant le fichier fourni en argument. Cette option est activée par défaut.
varredir_close
Si existante, lâinterprĂ©teur ferme automatiquement les descripteurs de fichier affectĂ©s en utilisant la syntaxe de redirection {nom_de_variable} (consultez REDIRECTION above) au lieu de les laisser ouverts quand la commande se termine.
xpg_echo
Si existante, la commande interne echo développe par défaut les suites de caractÚres de protection par contre-oblique.
suspend [ -f ]
Suspendre lâexĂ©cution de lâinterprĂ©teur jusquâĂ la rĂ©ception dâun signal SIGCONT . Un interprĂ©teur de connexion, ou un interprĂ©teur dont le contrĂŽle des tĂąches nâest pas activĂ©, ne peut pas ĂȘtre suspendu ; lâoption -f permet de surpasser ce comportement et force sa suspension. LâĂ©tat renvoyĂ© est 0 , sauf si lâinterprĂ©teur est un interprĂ©teur de connexion, ou si le contrĂŽle des tĂąches nâest pas activĂ© et que lâoption -f est absente.
test
expr
[
expr
]
Renvoyer un Ă©tat 0 (vrai) ou 1 (faux) suivant lâĂ©valuation de la condition expr . Chaque opĂ©rateur et opĂ©rande doit ĂȘtre reprĂ©sentĂ© par un argument distinct. Les expressions sont composĂ©es des primitives dĂ©crites above dans CONDITIONS . test nâaccepte aucune option, nâaccepte pas non plus et ignore un argument de -- pour signifier la fin des options.
Les conditions peuvent ĂȘtre combinĂ©es avec les opĂ©rateurs suivant, dĂ©crits par ordre de prioritĂ© dĂ©croissante. LâĂ©valuation dĂ©pend du nombre dâarguments, voir ci-dessous. La prioritĂ© des opĂ©rateurs est utilisĂ©e quand il y a au moins cinq arguments.
|
! expr |
Vrai si expr est fausse. |
( expr )
Renvoie la valeur de expr . Peut servir à surpasser la priorité normale des opérateurs.
expr1 -a expr2
Vrai si expr1 et expr2 sont toutes deux vraies.
expr1 -o expr2
Vrai si expr1 ou expr2 est vraie.
test
et
[
évaluent les conditions en fonction
dâun jeu de rĂšgles dĂ©pendant du nombre
dâarguments.
0 argument
La condition est fausse.
1 argument
La condition est vraie si et seulement si lâargument nâest pas NULL.
2 arguments
Si le premier argument est ! , la condition est vraie si et seulement si le second argument est NULL. Si le premier argument est lâun des opĂ©rateurs conditionnels unaires dĂ©crits above dans CONDITIONS la condition est vraie si le test unaire est vrai. Si le premier argument nâest pas un opĂ©rateur conditionnel unaire correct, la condition est fausse.
3 arguments
Les conditions suivantes sont appliquĂ©es dans lâordre de la liste. Si le second argument est lâun des opĂ©rateurs conditionnels binaires dĂ©crits above dans CONDITIONS , le rĂ©sultat de la condition est le rĂ©sultat du test binaire utilisant le premier et le troisiĂšme argument en tant quâopĂ©randes. Les opĂ©rateurs -a et -o sont considĂ©rĂ©s comme des opĂ©rateurs binaires quand il y a trois arguments. Si le premier argument est ! , la valeur est la nĂ©gation du test binaire utilisant les deuxiĂšme et troisiĂšme arguments. Si le premier argument est exactement ( et le troisiĂšme argument est exactement ) , le rĂ©sultat est le test unaire du second argument. Sinon la condition est fausse.
4 arguments
Les conditions suivantes sont appliquĂ©es dans lâordre de la liste. Si le premier argument est ! , le rĂ©sultat est la nĂ©gation de lâexpression ternaire composĂ©e des arguments restants, le test binaire utilisant les deuxiĂšme et troisiĂšme arguments. Si le premier argument est exactement ( et le quatriĂšme argument est exactement ) , le rĂ©sultat est le test binaire des deuxiĂšme et troisiĂšme arguments. Sinon la condition est analysĂ©e et Ă©valuĂ©e suivant la prioritĂ© utilisant les rĂšgles listĂ©es ci-dessus.
5 arguments ou plus
La condition est analysée et évaluée selon les rÚgles de priorité décrites ci-dessus.
Lorsquâils sont utilisĂ©s avec test ou [ , les opĂ©rateurs < et > ordonnent dâun point de vue lexicographique en utilisant lâordre ASCII.
|
times |
Afficher les durĂ©es cumulĂ©es utilisateur et systĂšme pour lâinterprĂ©teur et les processus lancĂ©s par cet interprĂ©teur. LâĂ©tat renvoyĂ© est 0 . |
trap [ -lp ] [[ argument ] signal ...]
La commande argument doit ĂȘtre lue et exĂ©cutĂ©e quand lâinterprĂ©teur reçoit au moins un signal . Si argument est absent (et quâun seul signal est fourni) ou - , chaque signal indiquĂ© est rĂ©initialisĂ© Ă sa position dâorigine (la valeur quâil avait lors de lâentrĂ©e dans lâinterprĂ©teur). Si argument est la chaĂźne NULL, chaque signal indiquĂ© est ignorĂ© par lâinterprĂ©teur et par les commandes quâil appelle. Si argument nâest pas prĂ©sent et que -p est fourni, les commandes capturĂ©es associĂ©es Ă chaque signal sont affichĂ©es. Si aucun argument nâest fourni, ou si seul -p est donnĂ©, trap affiche la liste des commandes associĂ©es Ă chaque signal. Lâoption -l conduit lâinterprĂ©teur Ă afficher une liste des noms de signal et leur numĂ©ro correspondant. Chaque signal est soit un nom de signal dĂ©fini dans < signal.h >, soit un numĂ©ro de signal. Les noms de signal sont insensibles Ă la casse et le prĂ©fixe SIG est optionnel.
Si un signal est EXIT (0), la commande argument est exĂ©cutĂ©e lors de la sortie de lâinterprĂ©teur. Si un signal est DEBUG , la commande argument est exĂ©cutĂ©e avant toute commande simple , commande for , commande case , commande select , toute commande for arithmĂ©tique, et avant que la premiĂšre commande nâexĂ©cute une fonction de lâinterprĂ©teur (consultez GRAMMAIRE DE LâINTERPRĂTEUR . above). Reportez-vous Ă la description de lâoption extdebug de la commande interne shopt pour obtenir des renseignements sur les effets de la capture DEBUG . Si un signal est RETURN , la commande argument est exĂ©cutĂ©e Ă chaque fois quâune fonction de lâinterprĂ©teur, ou un script exĂ©cutĂ© avec les commandes internes . ou source , termine son exĂ©cution.
Si un signal est ERR , la commande argument est exĂ©cutĂ©e chaque fois quâun pipeline (qui peut ĂȘtre rĂ©duit Ă une unique commande simple), une liste ou une commande composĂ©e, renvoie un Ă©tat final diffĂ©rent de zĂ©ro, soumis aux conditions suivantes. La capture ERR nâest pas exĂ©cutĂ©e si la commande Ă©chouant fait partie dâune liste de commandes suivant immĂ©diatement un mot clef while ou until , dâun test dans une construction if , dâune commande exĂ©cutĂ©e au sein dâune liste de && ou de || exceptĂ©e la commande suivant le dernier && ou || , nâimporte quelle commande dâun pipeline sauf la derniĂšre, ou si la valeur renvoyĂ©e par la commande est inversĂ©e par ! . Ce sont les mĂȘmes conditions que celles observĂ©es par lâoption errexit ( -e ).
Les signaux ignorĂ©s en entrant dans lâinterprĂ©teur ne peuvent ĂȘtre capturĂ©s ou rĂ©initialisĂ©s. Les signaux capturĂ©s qui ne sont pas ignorĂ©s sont rĂ©initialisĂ©s Ă leur valeur dâorigine dans un sous-interprĂ©teur ou un environnement de sous-interprĂ©teur quand il est créé. LâĂ©tat renvoyĂ© est faux si un signal nâest pas valable, sinon trap renvoie vrai.
type [ -aftpP ] nom [ nom ...]
Sans option, indiquer la façon dâinterprĂ©ter chaque nom sâil est utilisĂ© en nom de commande. Si lâattribut -t est utilisĂ©, type affiche une des chaĂźnes alias , keyword , function , builtin ou file selon que le nom est un alias, un mot clef rĂ©servĂ© de lâinterprĂ©teur, une fonction, une commande interne ou un fichier sur le disque. Si le nom nâest pas trouvĂ©, rien nâest affichĂ© et un Ă©tat final Ă faux est renvoyĂ©. Si lâoption -p est utilisĂ©e, type renvoie le nom du fichier qui sera exĂ©cutĂ© si lâon tape le nom en guise de commande ou rien si ââtype -t nameââ ne renvoyait pas file . Lâoption -P force une recherche dans PATH pour chaque nom , mĂȘme si ââtype -t nameââ ne renvoyait pas file . Si une commande est disponible dans la table de hachage, -p et -P affichent la valeur de cette table, qui nâest pas nĂ©cessairement le fichier apparaissant en premier dans PATH . Si lâoption -a est appelĂ©e, type affiche tous les emplacements contenant un exĂ©cutable du nom indiquĂ©. Cela inclut les alias et les fonctions, sauf si lâoption -p est Ă©galement prĂ©sente. La table de hachage des commandes nâest pas consultĂ©e avec lâoption -a . Lâoption -f supprime la fonction de lâinterprĂ©teur de consultation de table, comme avec la commande interne command . type renvoie vrai si tous les arguments sont trouvĂ©s et faux si aucun nâa Ă©tĂ© trouvĂ©.
ulimit
[
-HS
]
-a
ulimit -HS
] [
-bcdefiklmnpqrstuvxPRT
[
limitation
]]
Fournir, sur les systĂšmes qui le permettent, un mĂ©canisme de contrĂŽle des ressources disponibles pour lâinterprĂ©teur et pour les processus quâil lance. Les options -H et -S indiquent si la limitation est stricte (« hard ») ou flexible (« soft ») pour la ressource indiquĂ©e. Une limitation stricte ne peut pas ĂȘtre augmentĂ©e par un utilisateur non privilĂ©giĂ© une fois quâelle a Ă©tĂ© configurĂ©e ; une limitation flexible peut ĂȘtre augmentĂ©e jusquâĂ la valeur de la limitation stricte correspondante. Si ni -H ni -S nâest indiquĂ©, les limitations stricte et flexible sont toutes deux configurĂ©es. La valeur de la limitation peut ĂȘtre un nombre (utilisant les unitĂ©s particuliĂšres de la ressource) ou lâune des valeurs spĂ©ciales hard , soft ou unlimited , qui signifient, respectivement, la limitation stricte actuelle, la limitation flexible actuelle et lâabsence de limitation. Si la limitation est omise, la valeur actuelle de la limitation flexible pour la ressource est affichĂ©e, Ă moins que lâoption -H soit indiquĂ©e. Quand plusieurs ressources sont indiquĂ©es, les noms des limitations et leurs unitĂ©s, le cas Ă©chĂ©ant, sont affichĂ©s avant les valeurs. Les autres options sont interprĂ©tĂ©es comme suit :
|
-a |
Toutes les limitations actuelles sont signalĂ©es ; aucune limitation nâest fixĂ©e |
||
|
-b |
La taille maximale du tampon de socket |
||
|
-c |
La taille maximale des fichiers core créés |
||
|
-d |
La taille maximale du segment de donnĂ©es dâun processus |
||
|
-e |
La prioritĂ© maximale dâordonnancement (« nice ») |
||
|
-f |
La taille maximale dâun fichier Ă©crit par lâinterprĂ©teur et ses enfants |
||
|
-i |
Le nombre maximal de signaux en attente |
||
|
-k |
Le nombre maximal de kqueue qui peuvent ĂȘtre allouĂ©s |
||
|
-l |
La taille maximale qui peut ĂȘtre verrouillĂ©e en mĂ©moire |
||
|
-m |
La taille maximale de la partie rĂ©sidente dâun processus (« resident set size » ou RSS, la plupart des systĂšmes ne respectent pas cette limite) |
||
|
-n |
Le nombre maximal de descripteurs de fichiers ouverts (la plupart des systĂšmes ne permettent pas de modifier cette valeur) |
||
|
-p |
La taille dâun tube en blocs de 512 octets (parfois inexistante) |
||
|
-q |
Le nombre maximal dâoctets dans les files de messages POSIX |
||
|
-r |
La prioritĂ© maximale dâordonnancement temps-rĂ©el |
||
|
-s |
La taille maximale de la pile |
||
|
-t |
La durée maximale, en seconde, de temps processeur accordé à un processus |
||
|
-u |
Le nombre maximal de processus autorisés pour un seul utilisateur |
||
|
-v |
La quantitĂ© maximale de mĂ©moire virtuelle disponible pour lâinterprĂ©teur et, sur certains systĂšmes, pour ses enfants |
||
|
-x |
Le nombre maximal de verrous de fichiers |
||
|
-P |
Le nombre maximal de pseudo-terminaux |
||
|
-R |
La durĂ©e maximale pendant laquelle un processus en temps rĂ©el peut sâexĂ©cuter avant de bloquer, en microsecondes. |
||
|
-T |
Le nombre maximal de processus légers (« threads ») |
Si une limitation est indiquĂ©e, et que lâoption -a nâest pas donnĂ©e, limitation sera la nouvelle valeur pour la ressource indiquĂ©e. Si aucune option nâest indiquĂ©e alors -f est supposĂ©e. Les valeurs sâexpriment par pas de 1024 octets, sauf pour -t qui est en secondes, -R qui est en microsecondes, -p qui utilise comme unitĂ© le bloc de 512 octets ; pour -P , -T , -b , -k , -n et -u qui nâont pas dâunité ; enfin, en mode POSIX , la valeur pour -c et -f sâexprime par pas de 512 octets. Le code de retour est 0 , sauf si une option ou un argument incorrect ont Ă©tĂ© fournis ou si une erreur se produit en configurant une nouvelle limitation.
umask [ -p ] [ -S ] [ mode ]
Le masque de crĂ©ation de fichier de lâutilisateur est configurĂ© Ă mode . Si mode commence par un chiffre, il est interprĂ©tĂ© comme un nombre octal, sinon il est considĂ©rĂ© comme un masque symbolique, semblable Ă ceux acceptĂ©s par chmod (1). Si mode est omis ou si lâoption -S est fournie, la valeur actuelle du masque est affichĂ©e. Lâoption -S conduit Ă lâaffichage du masque sous forme symbolique, lâaffichage par dĂ©faut Ă©tant en octal. Si lâoption -p est fournie et si le mode est omis, la sortie a lieu dans un format rĂ©utilisable en entrĂ©e. LâĂ©tat renvoyĂ© est 0 si le mode a pu ĂȘtre changĂ© correctement ou si aucun argument mode nâa Ă©tĂ© fourni, et faux sinon.
unalias [ -a ] [ nom ...]
Supprimer le nom de la liste des alias dĂ©finis. Si lâoption -a est fournie, toutes les dĂ©finitions dâalias sont supprimĂ©es. La valeur renvoyĂ©e est vrai, sauf si un nom fourni nâest pas un alias dĂ©fini.
unset [ -fv ] [ -n ] [ nom ...]
Pour chaque nom indiquĂ©, supprimer la variable ou la fonction correspondante. Si lâoption -v est indiquĂ©e, chaque nom se rapporte Ă une variable de lâinterprĂ©teur, et cette variable est supprimĂ©e. Les variables en lecture seule ne peuvent pas ĂȘtre dĂ©truites. Si lâoption -f est indiquĂ©e, chaque nom se rapporte Ă une fonction de lâinterprĂ©teur et la dĂ©finition de la fonction est supprimĂ©e. Si lâoption -n est fournie, et que nom est une variable avec lâattribut nameref , nom sera dĂ©truite plutĂŽt que la variable quâelle rĂ©fĂ©rence. -n nâa pas dâeffet si lâoption -f est fournie. Si aucune option nâest fournie, chaque nom fait rĂ©fĂ©rence Ă une variable ; si aucune variable de ce nom nâexiste, toutes les fonctions de ce nom sont dĂ©truites. Toutes les variables et fonctions dĂ©truites sont supprimĂ©es de lâenvironnement transmis aux commandes ultĂ©rieures. Si lâune des variables BASH_ALIASES , BASH_ARGV0 , BASH_CMDS , BASH_COMMAND , BASH_SUBSHELL , BASHPID , COMP_WORDBREAKS , DIRSTACK , EPOCHREALTIME , EPOCHSECONDS , FUNCNAME , GROUPS , HISTCMD , LINENO , RANDOM , SECONDS , ou SRANDOM est dĂ©truite, elle perd ses propriĂ©tĂ©s particuliĂšres, mĂȘme si elle est recréée ultĂ©rieurement. LâĂ©tat final est vrai sauf si un des nom s est en lecture seule ou ne peut pas ĂȘtre dĂ©truit.
wait [ -fn ] [ -p nom_de_variable ] [ id ... ]
Attendre que tous les processus enfants indiquĂ©s sâexĂ©cutent et renvoient leur Ă©tat final. Chaque id peut ĂȘtre un PID ou une spĂ©cification de tĂąche ; si une spĂ©cification de tĂąche est indiquĂ©e, la fin de tous les processus du pipeline de cette tĂąche sera attendue. Si id est omis, wait attend la fin de toutes les tĂąches exĂ©cutĂ©es en arriĂšre-plan et la substitution du dernier processus exĂ©cutĂ©, si lâ id du processus est le mĂȘme que $! , et le code de retour est zĂ©ro. Si lâoption -n est fournie, wait attend quâune seule tĂąche de la liste dâ id ou, si aucun id nâest fourni, que toutes les tĂąches se terminent et renvoient leur Ă©tat final. Si aucun des arguments fournis nâest un enfant de lâinterprĂ©teur, lâĂ©tat renvoyĂ© est 127. Si lâoption -p est fournie, lâidentificateur de processus ou de tĂąche de la tĂąche pour laquelle lâĂ©tat final est renvoyĂ© est affectĂ© Ă la variable nom_de_variable nommĂ©e par lâargument de lâoption. La variable sera dĂ©truite initialement, avant toute affectation. Câest utile seulement lorsque lâoption -n est fournie. Fournir lâoption -f , quand le contrĂŽle des tĂąches est activĂ©, force wait Ă attendre que id se termine avant de renvoyer son Ă©tat, plutĂŽt que de renvoyer son Ă©tat quand il change. Si id indique un processus ou une tĂąche inexistants, lâĂ©tat renvoyĂ© est 127. Si wait est interrompu par un signal, lâĂ©tat renvoyĂ© sera supĂ©rieur Ă 128 comme dĂ©crit dans SIGNAUX . above. Sinon, lâĂ©tat renvoyĂ© est lâĂ©tat final du dernier processus, ou tĂąche, attendu.
MODE DE COMPATIBILITĂ DE LâINTERPRĂTEUR
Bash-4.0 a introduit le concept de niveau de compatibilitĂ© de lâinterprĂ©teur spĂ©cifiĂ© comme un ensemble dâoptions de la commande interne shopt ( compat31 , compat32 , compat40 , compat41 , etc.). Il ne peut y avoir quâun seul niveau de compatibilitĂ© en cours â les options sâexcluent mutuellement. Le niveau de compatibilitĂ© est destinĂ© Ă permettre aux utilisateurs de choisir un comportement dâune version antĂ©rieure qui est incompatible avec les versions plus rĂ©centes lors des migrations de scripts pour utiliser les fonctionnalitĂ©s et les comportements actuels. Câest censĂ© ĂȘtre une solution temporaire.
Cette section ne mentionne pas les comportements standards dâune version particuliĂšre (par exemple, la configuration Ă compat32 signifie que la protection de la partie droite de lâopĂ©rateur de correspondance dâune expression rationnelle protĂšge les caractĂšres spĂ©ciaux dâexpression rationnelle dans le mot, ce qui est le comportement par dĂ©faut dans bash-3.2 et les versions suivantes).
Si lâutilisateur active, par exemple, compat32 , cela peut affecter le comportement des autres niveaux de compatibilitĂ© jusquâĂ , et y compris, le niveau de compatibilitĂ© en cours. LâidĂ©e est que chaque niveau de compatibilitĂ© contrĂŽle les comportements qui ont changĂ© dans cette version de bash , mais ces comportements peuvent avoir Ă©tĂ© prĂ©sents dans des versions prĂ©cĂ©dentes. Par exemple, la modification pour utiliser les comparaisons basĂ©es sur les paramĂštres linguistiques rĂ©gionaux avec la commande [[ a Ă©tĂ© introduite dans bash-4.1 et les versions prĂ©cĂ©dentes utilisaient des comparaisons basĂ©es sur ASCII, aussi, activer compat32 activera Ă©galement les comparaisons basĂ©es sur ASCII. Cette granularitĂ© peut ne pas ĂȘtre suffisante pour tous les usages, et, de ce fait, les utilisateurs devraient employer prudemment les niveaux de compatibilitĂ©. Lisez la documentation dâune fonctionnalitĂ© particuliĂšre pour dĂ©couvrir le comportement actuel.
Bash-4.3 a introduit une nouvelle variable de lâinterprĂ©teur : BASH_COMPAT . La valeur affectĂ©e Ă cette variable (un numĂ©ro de version dĂ©cimal, comme 4.2, ou un nombre entier correspondant Ă lâoption compat NN , comme 42) dĂ©termine le niveau de compatibilitĂ©.
Ă partir de bash-4.4, bash a commencĂ© Ă rendre obsolĂštes les niveaux de compatibilitĂ© plus anciens. Les options finiront par ĂȘtre retirĂ©es au profit de BASH_COMPAT .
Bash-5.0 est la derniÚre version pour laquelle il y aura une option de shopt particuliÚre pour la version précédente. Les utilisateurs devraient utiliser BASH_COMPAT avec bash-5.0 et les versions ultérieures.
Le tableau
suivant décrit les changements de comportement
contrÎlés par chaque configuration de niveau de
compatibilitĂ©. LâĂ©tiquette
compat
NN
est un raccourci utilisé pour
configurer le niveau de compatibilitĂ© Ă
NN
en utilisant un des mécanismes suivants.
Pour les versions antérieures à bash-5.0, le
niveau de compatibilitĂ© peut ĂȘtre fixĂ©
avec lâoption de
compat
NN
de
shopt
correspondante. Pour bash-4.3 et les versions
ultérieures, la variable
BASH_COMPAT
est
privilégiée et devient
obligatoire
pour bash-5.1 et les versions ultérieures.
compat31
|
- |
La protection de la partie droite de lâopĂ©rateur de correspondance (=Ë) dâune expression rationnelle de la commande [[ nâa aucun effet particulier. |
compat32
|
- |
Lâinterruption dâune liste de commandes comme « a ; b ; c » provoque lâexĂ©cution de la commande suivante dans la liste (avec bash-4.0 et les versions ultĂ©rieures, lâinterprĂ©teur se comporte comme sâil recevait lâinterruption, aussi lâinterruption dâune commande dans une liste termine lâexĂ©cution de toute la liste). |
compat40
|
- |
Les opĂ©rateurs < et > de la commande [[ ne tiennent pas compte des paramĂštres linguistiques rĂ©gionaux actuels lors des comparaisons de chaĂźnes. Ils utilisent lâordre ASCII. Les versions de bash antĂ©rieures Ă Â 4.1 utilisent la collation ASCII et strcmp (3). bash Ă partir de la version 4.1 utilise la suite de collation des paramĂštres linguistiques rĂ©gionaux et strcoll (3). |
compat41
|
- |
En mode POSIX , time peut ĂȘtre suivi par des options tout en continuant Ă ĂȘtre reconnu comme un mot rĂ©servĂ© (câest lâinterprĂ©tation POSIX 267). |
||
|
- |
En mode POSIX , lâanalyseur exige quâil existe un nombre pair de guillemets simples dans la partie mot dâun dĂ©veloppement de paramĂštres protĂ©gĂ© par des guillemets doubles et les traite de façon particuliĂšre, ainsi les caractĂšres entre les guillemets simples sont considĂ©rĂ©s comme protĂ©gĂ©s (câest lâinterprĂ©tation POSIX 221). |
compat42
|
- |
La chaĂźne de remplacement dans le motif de substitution entre guillemets doubles nâest pas sujette Ă la suppression des guillemets, comme dans les versions postĂ©rieures Ă bash-4.2. |
||
|
- |
En mode POSIX , les guillemets simples sont considĂ©rĂ©s particuliers lors du dĂ©veloppement de la partie mot dâun dĂ©veloppement de paramĂštres protĂ©gĂ©e par des guillemets doubles et peuvent ĂȘtre utilisĂ©s pour protĂ©ger une accolade fermante ou un autre caractĂšre spĂ©cial (cela fait partie de lâinterprĂ©tation POSIX 221) ; dans les versions ultĂ©rieures, les guillemets simples ne sont pas traitĂ©s particuliĂšrement dans les dĂ©veloppements de mots entre guillemets doubles. |
compat43
|
- |
LâinterprĂ©teur nâaffiche pas de message dâavertissement si une tentative est faite dâutiliser une affectation composĂ©e protĂ©gĂ©e comme un argument Ă dĂ©clarer (par exemple, dĂ©clarer -a toto='(1 2)'). Les versions ultĂ©rieures avertissent que cette utilisation est obsolĂšte. |
||
|
- |
Les erreurs de dĂ©veloppement de mots ne sont pas considĂ©rĂ©es comme des erreurs fatales qui provoquent lâĂ©chec de la commande en cours, mĂȘme en mode POSIX (le comportement par dĂ©faut est de les traiter comme des erreurs fatales, ce qui fait que lâinterprĂ©teur termine). |
||
|
- |
Lors de lâexĂ©cution dâune fonction de lâinterprĂ©teur, lâĂ©tat de la boucle (while/until/ etc.) nâest pas rĂ©initialisĂ©, aussi break ou continue dans cette fonction interrompt ou poursuit la boucle dans le contexte de lâappel. Bash-4.4 et les versions ultĂ©rieures rĂ©initialisent lâĂ©tat de la boucle pour Ă©viter cela. |
compat44
|
- |
LâinterprĂ©teur configure les valeurs utilisĂ©es par BASH_ARGV et BASH_ARGC de telle maniĂšre quâelles peuvent se dĂ©velopper en paramĂštres positionnels de lâinterprĂ©teur mĂȘme si le mode de traçage Ă©tendu nâest pas activĂ©. |
||
|
- |
Un sous-interprĂ©teur hĂ©rite des boucles du contexte de son parent, aussi break ou continue provoqueront la terminaison du sous-interprĂ©teur. Bash-5.0 et les versions ultĂ©rieures rĂ©initialisent lâĂ©tat de la boucle pour Ă©viter la terminaison. |
||
|
- |
Les affectations de variables prĂ©cĂ©dant des commandes internes comme export et readonly qui configurent des attributs, continuent Ă affecter des variables ayant le mĂȘme nom dans lâenvironnement dâappel mĂȘme si lâinterprĂ©teur nâest pas en mode POSIX . |
compat50
|
- |
Bash-5.1 a modifiĂ© la maniĂšre dont $RANDOM est gĂ©nĂ©rĂ© pour introduire un peu plus dâalĂ©a. Si le niveau de compatibilitĂ© de lâinterprĂ©teur est fixĂ© Ă Â 50 ou moins, bash retourne Ă la mĂ©thode de bash-5.0 et des versions antĂ©rieures, aussi lâensemencement du gĂ©nĂ©rateur de nombres alĂ©atoires en affectant une valeur Ă RANDOM produira la mĂȘme sĂ©quence quâavec bash-5.0. |
||
|
- |
Si la table de hachage des commandes est vide, les versions de bash antĂ©rieures Ă bash-5.1 affichaient un message dâinformation Ă cet effet mĂȘme quand elles produisaient une sortie qui pouvait ĂȘtre rĂ©utilisĂ©e en entrĂ©e. Bash-5.1 supprime ce message quand lâoption -l est fournie. |
compat51
|
- |
La commande interne unset traite les tentatives pour détruire les tableaux indicés par @ et * différemment selon que le tableau est un tableau indicé ou associatif, et autrement que dans les versions précédentes. |
INTERPRĂTEUR RESTREINT
Si bash dĂ©marre sous le nom rbash ou si lâoption -r est fournie lors de son appel, lâinterprĂ©teur devient restreint. Un interprĂ©teur restreint permet de crĂ©er un environnement plus contrĂŽlĂ© quâun interprĂ©teur standard. Il se comporte de mĂȘme façon que bash Ă la diffĂ©rence des actions suivantes qui sont interdites ou non effectuĂ©es :
|
- |
changer de répertoire avec cd ; |
||
|
- |
créer ou détruire les valeurs de SHELL , PATH , HISTFILE , ENV ou BASH_ENV ; |
||
|
- |
indiquer des noms de commandes contenant un / ; |
||
|
- |
indiquer un nom de fichier contenant un / comme argument de la commande interne . ; |
||
|
- |
indiquer un nom de fichier contenant une barre oblique ( / ) comme argument de la commande interne history ; |
||
|
- |
indiquer un nom de fichier contenant une barre oblique comme argument de lâoption -p de la commande interne hash ; |
||
|
- |
importer une dĂ©finition de fonction dans lâenvironnement au dĂ©marrage ; |
||
|
- |
analyser les valeurs de SHELLOPTS de lâenvironnement dâinterprĂ©teur au dĂ©marrage ; |
||
|
- |
rediriger la sortie en utilisant les opérateurs de redirection >, >|, <>, >&, &> et >> ; |
||
|
- |
utiliser la commande interne exec pour remplacer lâinterprĂ©teur par une autre commande ; |
||
|
- |
ajouter ou supprimer des commandes internes avec les options -f et -d de la commande interne enable ; |
||
|
- |
utiliser la commande interne enable pour activer les commandes internes de lâinterprĂ©teur dĂ©sactivĂ©es ; |
||
|
- |
indiquer lâoption -p Ă la commande interne commande ; |
||
|
- |
supprimer le mode restreint avec set +r ou shopt -u restricted_shell . |
Ces restrictions sont mises en place aprĂšs la lecture de tous les fichiers dâinitialisation.
When a command that is found to be a shell script is executed (see COMMAND EXECUTION above), rbash supprime toute restriction dans lâinterprĂ©teur créé pour exĂ©cuter le script.
VOIR AUSSI
Manuel de
référence de Bash
, Brian Fox et Chet Ramey
The GNU Readline Library
, Brian Fox et Chet Ramey
The GNU History Library
, Brian Fox et Chet Ramey
Portable Operating System Interface (POSIX) Part 2: Shell
and
Utilities
, IEEEÂ â
http://pubs.opengroup.org/onlinepubs/9699919799/
http://tiswww.case.edu/Ëchet/bash/POSIX
â une description du
mode POSIX
sh
(1),
ksh
(1),
csh
(1)
emacs
(1),
vi
(1)
readline
(3)
FICHIERS
/bin/bash
LâexĂ©cutable bash
/etc/profile
Le fichier dâinitialisation commun Ă tout le systĂšme, exĂ©cutĂ© pour les interprĂ©teurs de commandes de connexion
/etc/bash.bashrc
Le fichier dâinitialisation commun Ă tout le systĂšme pour les interprĂ©teurs interactifs
/etc/bash.bash.logout
Le fichier de nettoyage des interprĂ©teurs de connexion commun Ă tout le systĂšme, exĂ©cutĂ© lorsquâun interprĂ©teur de connexion termine
Ë/.bash_profile
Le fichier dâinitialisation personnel exĂ©cutĂ© pour les interprĂ©teurs de commandes de connexion
Ë/.bashrc
Le fichier dâinitialisation personnel pour les interprĂ©teurs interactifs
Ë/.bash_logout
Le fichier de nettoyage personnel des interprĂ©teurs de commandes de connexion, exĂ©cutĂ© lorsquâun interprĂ©teur de commandes de connexion termine
Ë/.bash_history
La valeur par dĂ©faut de HISTFILE , le fichier dans lequel bash sauvegarde lâhistorique des commandes
Ë/.inputrc
Le fichier dâinitialisation personnel de readline
AUTEURS
Brian Fox, Free
Software Foundation
bfox@gnu.org
Chet Ramey, Case
Western Reserve University
chet.ramey@case.edu
SIGNALEMENTS DE BOGUES
Si vous trouvez une anomalie dans bash, vous devriez la signaler. Tout dâabord vous devez vous assurer quâil sâagit rĂ©ellement dâune anomalie et quâelle apparaĂźt bien dans la derniĂšre version disponible de bash . La derniĂšre version est toujours disponible Ă partir de ftp://ftp.gnu.org/pub/gnu/bash/ .
Une fois que vous avez dĂ©terminĂ© quâune anomalie existe effectivement, utilisez la commande bashbug pour envoyer un signalement dâanomalie. Si vous avez un correctif, vous ĂȘtes encouragĂ© Ă lâenvoyer en mĂȘme temps ! Les suggestions ou les signalements dâanomalies de nature « philosophique » peuvent ĂȘtre envoyĂ©s (en anglais) Ă bug-bash@gnu.org ou postĂ©s dans le groupe Usenet gnu.bash.bug .
TOUS les
signalements dâanomalie doivent contenir :
Le numéro de version de
bash
Le matĂ©riel et le systĂšme dâexploitation
utilisés
Le compilateur utilisé pour compiler
Une description (en anglais) de lâanomalie
Un petit script ou une « recette » qui
dĂ©montre lâanomalie
bashbug insĂšre automatiquement les trois premiers Ă©lĂ©ments de cette liste dans le formulaire quâil fournit pour remplir un signalement dâanomalie.
Les commentaires et signalement dâanomalies concernant la version originale de cette page de manuel (en anglais) doivent ĂȘtre transmis Ă chet.ramey@case.edu . Ceux concernant cette version française peuvent ĂȘtre envoyĂ©s Ă debian-l10n-french@lists.debian.org .
BOGUES
Cet interpréteur de commandes est trop gros et trop lent.
Il y a quelques différences subtiles de comportement entre bash et les versions traditionnelles de sh , principalement à cause des spécifications POSIX .
Lâutilisation des alias peut avoir des consĂ©quences inattendues.
Les commandes internes et les fonctions de lâinterprĂ©teur ne peuvent pas ĂȘtre suspendues/relancĂ©es.
Les commandes composĂ©es et les suites de commandes de la forme « a ; b ; c » ne sont pas gĂ©rĂ©es Ă©lĂ©gamment lors dâune interruption de processus. En cas de suspension dâun processus, lâinterprĂ©teur exĂ©cute immĂ©diatement la commande suivante. Il suffit de placer cette suite de commandes entre parenthĂšses pour la forcer Ă crĂ©er un sous-interprĂ©teur, qui, lui, pourra ĂȘtre suspendu en bloc.
Les variables de type tableau ne peuvent pas (encore) ĂȘtre exportĂ©es.
Il ne peut exister quâun seul coprocessus actif Ă la fois.
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <ccb@club-internet.fr>, Thierry Vignaud <tvignaud@mandriva.com>, Amand Tihon <amand@alrj.org>, Alain Portal <aportal@univ-montp2.fr>, Frederic Daniel Luc Lehobey <Frederic@Lehobey.net>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il nây a aucune RESPONSABILITĂ LĂGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .