Provided by: manpages-fr_4.15.0-9_all bug

NOM

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

SYNOPSIS

       getopt chaîne_options paramètres

       getopt [options] [--] chaîne_options paramètres

       getopt [options] -o|--options chaîne_options [options] [--] paramètres

DESCRIPTION

       getopt permet d'analyser les options d'une ligne de commande d'une façon simple pour des
       scripts shell et de vérifier les options autorisées. Les routines de GNU getopt(3) sont
       utilisées pour cela.

       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.

       Si la variable d'environnement GETOPT_COMPATIBLE est positionnée, ou si le premier
       paramètre n'est pas une option (c'est-à-dire ne commence pas par un « - », le premier
       format du SYNOPSIS), getopt produira une sortie compatible avec d'autres versions de
       getopt(1). Il réorganisera encore les paramètres et reconnaîtra les paramètres optionnels
       (consultez la section COMPATIBILITÉ pour plus d'informations).

       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
           Les options courtes (un seul caractère) à reconnaître. Si cette option n'est pas
           trouvée, le premier paramètre de getopt qui ne commence pas par un « - » (et qui n'est
           pas un paramètre d'une option) est utilisé comme chaîne de description des options
           courtes. Chaque caractère d'option courte de options_courtes peut être suivi d'un
           signe deux-points pour indiquer que l'option attend un paramètre ou de deux signes
           deux-points pour indiquer qu'elle a un paramètre optionnel. Le premier caractère de
           options_courtes peut être un « + » ou un « - » pour modifier la façon dont les options
           sont analysées et dont la sortie est produite (consultez la section MODES D'ANALYSE
           pour plus de précisions).

       -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
           Définir les règles de protection (avec des guillemets) à celles des interpréteurs de
           commandes shell. En absence d’indication de l’option -s, les conventions de BASH sont
           utilisées. Les valeurs acceptées sont « sh », « bash », « csh » et « 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 puis 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 « -- » 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.

       Si le premier caractère du premier paramètre de getopt n'est pas un « - », getopt passe en
       mode compatible. Il interprète son premier paramètre comme une chaîne de description des
       options courtes, et tous les autres paramètres seront analysés. Il réorganisera encore les
       paramètres (c'est-à-dire que les paramètres n'étant pas des options sont placés à la fin),
       à moins que la variable POSIXLY_CORRECT ne soit positionnée, auquel cas, getopt ajoutera
       automatiquement un « + » avant les options courtes.

       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

       Le code de retour de getopt est 0 en cas de réussite lors de l'analyse des options, 1 si
       getopt(3) signale des erreurs, 2 s'il ne comprend pas ses propres paramètres, 3 dans le
       cas d'une erreur interne (comme un manque de mémoire) et 4 lorsque l'option -T est
       utilisée.

EXEMPLES

       Des scripts d'exemple pour (ba)sh et (t)csh sont distribués avec getopt(1) et installés
       dans le répertoire /usr/share/doc/util-linux/examples/.

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) peut analyser des options longues avec des paramètres optionnels vides (ce n'est
       pas possible pour les options courtes). Cette version de getopt(1) traite les arguments
       optionnels vides comme s'ils n'étaient pas présents.

       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 envoyer un rapport de bogue, utilisez le système de gestion des problèmes à l'adresse
       https://github.com/util-linux/util-linux/issues.

DISPONIBILITÉ

       La commande getopt fait partie du paquet util-linux téléchargeable sur Linux Kernel
       Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

TRADUCTION

       La traduction française de cette page de manuel a été créée par Christophe Blaess
       <ccb@club-internet.fr>, Michel Quercia <quercia AT cal DOT enst DOT fr>, Thierry Vignaud
       <tvignaud@mandriva.com>, Frédéric Delanoy <delanoy_f@yahoo.com>, Thierry Vignaud
       <tvignaud@mandriva.com>, Christophe Sauthier <christophe@sauthier.com>, Sébastien
       Blanchet, Jérôme Perzyna <jperzyna@yahoo.fr>, Aymeric Nys <aymeric AT nnx POINT com>,
       Alain Portal <aportal@univ-montp2.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Yves
       Rütschlé <l10n@rutschle.net>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien
       Cristau <jcristau@debian.org>, Philippe Piette <foudre-blanche@skynet.be>, Jean-Baka
       Domelevo-Entfellner <domelevo@gmail.com>, Nicolas Haller <nicolas@boiteameuh.org>, Sylvain
       Archenault <sylvain.archenault@laposte.net>, Valéry Perrin <valery.perrin.debian@free.fr>,
       Jade Alglave <jade.alglave@ens-lyon.org>, Nicolas François
       <nicolas.francois@centraliens.net>, Alexandre Kuoch <alex.kuoch@gmail.com>, Lyes Zemmouche
       <iliaas@hotmail.fr>, Florentin Duneau <fduneau@gmail.com>, Alexandre Normand
       <aj.normand@free.fr>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General
       Public License version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.