Provided by: util-linux-locales_2.41-4ubuntu3_all bug

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/>.

util-linux 2.41                                    2025-07-02                                          GETOPT(1)