Man page - getopt(1)

Packages contains this manual

Available languages:

en fr es pl ja uk ro sr de

Manual

GETOPT

NOM
SYNOPSIS
DESCRIPTION
OPTIONS
ANALYSE
SORTIE
PROTECTIONS
MODES D’ANALYSE
COMPATIBILITÉ
CODES DE RETOUR
EXEMPLES
ENVIRONNEMENT
BOGUES
AUTEUR
VOIR AUSSI
SIGNALER DES BOGUES
DISPONIBILITÉ

NOM

getopt - Analyser des options de lignes de commandes (version améliorée)

SYNOPSIS

getopt optstring parameters

getopt [options] [ -- ] optstring parameters

getopt [options] -o | --options optstring [options] [ -- ] parameters

DESCRIPTION

getopt is used to break up ( parse ) options in command lines for easy parsing by shell procedures, and to check for valid options. It uses the GNU getopt (3) routines to do this.

Les paramĂštres fournis Ă  getopt sont de deux types : le premier est constituĂ© des options qui modifient la façon dont getopt fera l’analyse (les options et chaĂźne_options dans le SYNOPSIS ) et les paramĂštres Ă  analyser ( paramĂštres dans le SYNOPSIS ). Le second type commence dĂšs le premier paramĂštre qui n’est pas une option ou aprĂšs la premiĂšre occurrence de « -- ». Si aucune option « -o » ou « --options » n’est prĂ©sente dans la premiĂšre partie, le premier paramĂštre de la seconde partie sera utilisĂ© comme chaĂźne d’options courtes.

If the environment variable GETOPT_COMPATIBLE is set, or if the first parameter is not an option (does not start with a ' - ', the first format in the SYNOPSIS ), getopt will generate output that is compatible with that of other versions of getopt (1). It will still do parameter shuffling and recognize optional arguments (see the COMPATIBILITY section for more information).

Les implĂ©mentations traditionnelles de getopt (1) ne gĂšrent pas les espaces ou autres caractĂšres spĂ©ciaux (spĂ©cifiques Ă  chaque interprĂ©teur de commandes) dans les paramĂštres (options ou non). Pour rĂ©soudre ce problĂšme, cette implĂ©mentation peut produire une sortie, entre guillemets, qui doit ĂȘtre interprĂ©tĂ©e de nouveau par l’interprĂ©teur de commandes (en gĂ©nĂ©ral avec la commande eval ). Cela permet de prĂ©server ces caractĂšres, mais vous devez appeler getopt d’une façon non compatible avec les autres versions (la deuxiĂšme ou troisiĂšme forme dans le SYNOPSIS ). Pour dĂ©terminer si cette version amĂ©liorĂ©e de getopt (1) est installĂ©e, vous pouvez utiliser l’option spĂ©ciale de test ( -T ).

OPTIONS

-a , --alternative

Permettre aux options longues de ne commencer que par un seul « - ».

-l , --longoptions options_longues

Les options longues (plusieurs caractĂšres) Ă  reconnaĂźtre. Plusieurs noms d’option peuvent ĂȘtre fournis en une seule fois, en sĂ©parant les noms par des virgules. Cette option peut ĂȘtre fournie plusieurs fois, les options_longues se cumulent. Chaque nom d’option dans options_longues peut ĂȘtre suivi d’un deux-points pour indiquer que l’option attend un paramĂštre, et par deux signes deux-points pour indiquer qu’elle a un paramĂštre optionnel.

-n , --name nom-de-programme

Le nom qui sera utilisé par getopt (3) pour signaler les erreurs. Notez que les erreurs de getopt (1) sont signalées comme provenant de getopt.

-o , --options options_courtes

The short (one-character) options to be recognized. If this option is not found, the first parameter of getopt that does not start with a ' - ' (and is not an option argument) is used as the short options string. Each short option character in shortopts may be followed by one colon to indicate it has a required argument, and by two colons to indicate it has an optional argument. The first character of shortopts may be ' + ' or ' - ' to influence the way options are parsed and output is generated (see the SCANNING MODES section for details).

-q , --quiet

Désactiver le signalement des erreurs par getopt (3).

-Q , --quiet-output

Ne pas produire la sortie normale. Les erreurs sont toujours remontĂ©es par getopt (3), sauf si l’option -q est utilisĂ©e.

-s , --shell shell

Set quoting conventions to those of shell . If the -s option is not given, the BASH conventions are used. Valid arguments are currently ' sh ', ' bash ', ' csh ', and ' tcsh '.

-T , --test

VĂ©rifier si la version de getopt (1) correspond Ă  cette version amĂ©liorĂ©e ou Ă  une version plus ancienne. Aucune sortie n’est créée et la valeur de retour est 4. Les autres implĂ©mentations de getopt (1) (ou celle-ci si la variable d’environnement GETOPT_COMPATIBLE est positionnĂ©e) renverront « -- », avec une valeur de retour de 0.

-u , --unquoted

Ne pas placer la sortie entre guillemets. Remarquez que les espaces et caractĂšres spĂ©ciaux (pour l’interprĂ©teur de commandes utilisĂ©) peuvent poser des problĂšmes dans ce mode (comme pour les autres implĂ©mentations de getopt (1)).

-h , --help

Afficher l’aide-mĂ©moire puis quitter.

-V , --version

Afficher la version et quitter.

ANALYSE

Cette section indique le format de la seconde partie des paramÚtres de getopt ( paramÚtres dans le SYNOPSIS ). La section suivante ( SORTIE ) décrit la sortie renvoyée. Ces paramÚtres sont généralement ceux fournis à une fonction shell. Il faut faire attention à ce que chaque paramÚtre fourni à la fonction corresponde bien à un paramÚtre de la liste des paramÚtres de getopt (consultez EXEMPLES ). Toutes les analyses sont faites en utilisant les routines de GNU getopt (3).

Les paramĂštres sont analysĂ©s de la gauche vers la droite. Chaque paramĂštre est classĂ© en option courte, option longue, argument d’une option ou paramĂštre n’étant pas une option.

Une option courte est un « - » suivi par le caractĂšre de l’option. Si l’option a un paramĂštre obligatoire, il peut ĂȘtre indiquĂ© juste aprĂšs le caractĂšre de l’option ou comme paramĂštre suivant (c’est-Ă -dire en les sĂ©parant par une espace). Si l’option a un paramĂštre optionnel, il doit ĂȘtre Ă©crit juste aprĂšs le caractĂšre de l’option (quand le paramĂštre est prĂ©sent).

Il est possible d’indiquer plusieurs options courtes aprĂšs un « - », tant que toutes les options (sauf peut-ĂȘtre la derniĂšre) n’ont pas de paramĂštre obligatoire ou optionnel.

Une option longue commence normalement par « -- », suivi par le nom de l’option longue. Si l’option nĂ©cessite un paramĂštre, celui-ci peut ĂȘtre indiquĂ© juste aprĂšs le nom de l’option, en insĂ©rant le caractĂšre « = » entre, ou il peut ĂȘtre indiquĂ© dans le paramĂštre suivant (c’est-Ă -dire en le sĂ©parant par une espace). Si l’option a un paramĂštre optionnel, il doit ĂȘtre indiquĂ© juste aprĂšs le nom de l’option, en insĂ©rant le caractĂšre « = » entre, si le paramĂštre est prĂ©sent (quand vous ajoutez le caractĂšre « = » sans rien derriĂšre, c’est comme si le paramĂštre n’était pas prĂ©sent ; c’est un bogue mineur, consultez la section BOGUES ). Les options longues peuvent ĂȘtre abrĂ©gĂ©es, tant que l’abrĂ©viation n’est pas ambiguĂ«.

Chaque paramĂštre ne commençant pas par un « - » et n’étant pas un paramĂštre obligatoire est un « paramĂštre n’étant pas une option ». Chaque paramĂštre situĂ© aprĂšs un « -- » est toujours interprĂ©tĂ© comme un « paramĂštre n’étant pas une option ». Si la variable d’environnement POSIXLY_CORRECT est positionnĂ©e, ou si la chaĂźne des options courtes commence par un « + », tous les paramĂštres suivant le premier paramĂštre n’étant pas une option sont interprĂ©tĂ©s comme des paramĂštres n’étant pas des options.

SORTIE

La sortie est gĂ©nĂ©rĂ©e pour chaque Ă©lĂ©ment dĂ©crit dans la section prĂ©cĂ©dente. Elle reprend l’ordre des Ă©lĂ©ments indiquĂ©s en entrĂ©e, Ă  l’exception des paramĂštres n’étant pas des options. La sortie peut ĂȘtre faite dans un mode compatible ( non protĂ©gĂ© : sans guillemets) ou de telle sorte que les espaces ou autres caractĂšres spĂ©ciaux des paramĂštres soient prĂ©servĂ©s (consultez PROTECTIONS ). Quand la sortie est utilisĂ©e dans un script shell, elle paraĂźtra composĂ©e d’élĂ©ments distincts qui peuvent ĂȘtre traitĂ©s un par un (en utilisant la commande shift de la plupart des langages de script). Ce n’est pas parfait dans le mode non protĂ©gĂ© parce que les Ă©lĂ©ments peuvent ĂȘtre coupĂ©s Ă  des endroits non prĂ©vus s’ils contiennent des espaces ou des caractĂšres spĂ©ciaux.

En cas de problĂšme lors de l’analyse des paramĂštres, par exemple si un paramĂštre obligatoire n’est pas trouvĂ© ou si une option n’est pas reconnue, une erreur est renvoyĂ©e sur la sortie d’erreur standard. Les Ă©lĂ©ments incriminĂ©s ne seront pas affichĂ©s et un code d’erreur non nul est renvoyĂ©.

Pour une option courte, un seul « - » et le caractĂšre de l’option sont gĂ©nĂ©rĂ©s comme un paramĂštre. Si l’option est suivie de son paramĂštre, le paramĂštre suivant de la sortie sera le paramĂštre de l’option. Si l’option accepte un paramĂštre optionnel, mais qu’aucun n’a Ă©tĂ© trouvĂ©, un paramĂštre vide sera gĂ©nĂ©rĂ© dans le mode protĂ©gĂ©, mais aucun dans le mode non protĂ©gĂ© (ou mode compatible). Notez que beaucoup d’autres implĂ©mentations de getopt (1) ne gĂšrent pas les paramĂštres optionnels.

Si plusieurs options courtes ont été précisées aprÚs un unique « - », chacune sera présente dans la sortie dans un paramÚtre distinct.

Pour une option longue, « -- » et le nom complet de l’option sont gĂ©nĂ©rĂ©s en un seul paramĂštre. C’est le cas que l’option soit abrĂ©gĂ©e ou qu’elle soit indiquĂ©e avec un seul « - » dans l’entrĂ©e. Les paramĂštres sont traitĂ©s comme pour les options courtes.

Normalement, aucun paramĂštre n’étant pas une option n’est gĂ©nĂ©rĂ© sur la sortie tant que toutes les options et leurs paramĂštres n’ont pas Ă©tĂ© traitĂ©s. Ensuite, « -- » est gĂ©nĂ©rĂ© sĂ©parĂ©ment comme un paramĂštre, et est suivi des paramĂštres n’étant pas des options, dans l’ordre oĂč ils ont Ă©tĂ© trouvĂ©s, chacun comme un paramĂštre distinct. Si le premier caractĂšre de la chaĂźne des options courtes est un « - », et seulement dans ce cas, les paramĂštres n’étant pas des options sont gĂ©nĂ©rĂ©s quand ils sont trouvĂ©s dans l’entrĂ©e (ce n’est pas gĂ©rĂ© si la premiĂšre forme du SYNOPSIS est utilisĂ©e ; dans ce cas, les « - » et « + » de tĂȘte sont ignorĂ©s).

PROTECTIONS

Dans le mode compatible, les espaces et caractĂšres spĂ©ciaux dans les paramĂštres des options ou les paramĂštres n’étant pas des options ne sont pas gĂ©rĂ©s correctement. Comme la sortie est envoyĂ©e Ă  un script shell, le script ne sait pas comment il doit sĂ©parer les paramĂštres. Pour Ă©viter ce problĂšme, cette implĂ©mentation propose un mode protĂ©gĂ©. L’idĂ©e est de gĂ©nĂ©rer la sortie avec des protections (Ă  l’aide de guillemets) autour des paramĂštres. Quand cette sortie est envoyĂ©e de nouveau Ă  un interprĂ©teur de commandes (gĂ©nĂ©ralement en utilisant la commande eval de l’interprĂ©teur), le dĂ©coupage en paramĂštres est correct.

La protection n’est pas activĂ©e si la variable d’environnement GETOPT_COMPATIBLE est positionnĂ©e, si la premiĂšre forme du SYNOPSIS est utilisĂ©e ou si l’option « -u » est trouvĂ©e.

Les conventions de protection diffĂšrent suivant les interprĂ©teurs de commandes. Vous pouvez prĂ©ciser l’interprĂ©teur de commandes que vous utilisez avec l’option « -s ». Les interprĂ©teurs de commandes suivants sont gĂ©rĂ©s : « sh », « bash », « csh » et « tcsh ». En fait, seuls deux types sont diffĂ©renciĂ©s : ceux utilisant les conventions de sh et ceux utilisant les conventions de csh . Il y a de grandes chances que si vous utilisez un autre langage de script, il utilise une de ces conventions.

MODES D’ANALYSE

Le premier caractĂšre de la chaĂźne de description des options courtes peut ĂȘtre un « - » ou un « + » pour utiliser un mode spĂ©cial d’analyse. Si la premiĂšre forme du SYNOPSIS est appelĂ©e, ils sont ignorĂ©s ; mais la variable d’environnement POSIXLY_CORRECT est toujours examinĂ©e.

Si le premier caractĂšre est un « + », ou si la variable d’environnement POSIXLY_CORRECT est positionnĂ©e, l’analyse s’arrĂȘte dĂšs qu’un paramĂštre n’étant pas une option est rencontrĂ© (c’est-Ă -dire un paramĂštre qui ne commence pas par « - »). Aucun des paramĂštres suivants ne sera considĂ©rĂ© comme une option.

Si le premier caractĂšre est un « - », les paramĂštres qui ne sont pas des options sont placĂ©s dans la sortie Ă  la position oĂč ils ont Ă©tĂ© trouvĂ©s ; normalement, ils sont tous placĂ©s Ă  la fin de la sortie, juste aprĂšs le paramĂštre « B*-- » qui a Ă©tĂ© gĂ©nĂ©rĂ©. Notez que dans ce mode, le paramĂštre « --* » est encore gĂ©nĂ©rĂ©, mais il sera toujours le dernier paramĂštre.

COMPATIBILITÉ

Cette version de getopt (1) a Ă©tĂ© Ă©crite pour ĂȘtre aussi compatible que possible avec les autres versions. En gĂ©nĂ©ral, vous pouvez vous contenter de les remplacer par cette version sans aucune modification, avec mĂȘme certains avantages.

If the first character of the first parameter of getopt is not a ' - ', getopt goes into compatibility mode. It will interpret its first parameter as the string of short options, and all other arguments will be parsed. It will still do parameter shuffling (i.e., all non-option parameters are output at the end), unless the environment variable POSIXLY_CORRECT is set, in which case, getopt will prepend a ' + ' before short options automatically.

La variable d’environnement GETOPT_COMPATIBLE force getopt dans un mode de compatibilitĂ©. Avec Ă  la fois cette variable d’environnement et POSIXLY_CORRECT , il sera 100 % compatible pour les programmes « difficiles ». D’habitude, cependant, ni l’une ni l’autre n’est nĂ©cessaire.

Dans ce mode, les « - » ou « + » de tĂȘte des options courtes sont ignorĂ©s.

CODES DE RETOUR

getopt returns error code 0 for successful parsing, 1 if getopt (3) returns errors, 2 if it does not understand its own parameters, 3 if an internal error occurs like out-of-memory, and 4 if it is called with -T .

EXEMPLES

Example scripts for (ba)sh and (t)csh are provided with the getopt (1) distribution, and are installed in /usr/share/doc/util-linux directory.

ENVIRONNEMENT

POSIXLY_CORRECT

Cette variable d’environnement est utilisĂ©e par getopt (3). Lorsqu’elle est positionnĂ©e, l’analyse s’arrĂȘte au premier paramĂštre n’étant ni une option ni le paramĂštre d’une option. Tous les paramĂštres restants sont Ă©galement interprĂ©tĂ©s comme des paramĂštres n’étant pas des options, qu’ils commencent par un « - » ou non.

GETOPT_COMPATIBLE

Forcer getopt Ă  utiliser le premier format d’appel, comme indiquĂ© dans le SYNOPSIS .

BOGUES

getopt (3) can parse long options with optional arguments that are given an empty optional argument (but cannot do this for short options). This getopt (1) treats optional arguments that are empty as if they were not present.

La syntaxe n’est pas trĂšs intuitive si vous ne voulez pas d’option courte : vous devez explicitement les dĂ©finir comme des chaĂźnes vides.

AUTEUR

Frodo Looijaard <frodo@frodo.looijaard.name>

VOIR AUSSI

bash (1), tcsh (1), getopt (3)

SIGNALER DES BOGUES

Pour signaler un bogue, utilisez le gestionnaire de bogues <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITÉ

La commande getopt fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.