'\" t .\" Title: getopt .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-04-27 .\" Manual: Commandes de l'utilisateur .\" Source: util-linux 2.40 .\" Language: English .\" .TH "GETOPT" "1" "2024-04-27" "util\-linux 2.40" "Commandes de l\*(Aqutilisateur" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NOM" getopt \- Analyser des options de lignes de commandes (version améliorée) .SH "SYNOPSIS" .sp \fBgetopt\fP \fIoptstring\fP \fIparameters\fP .sp \fBgetopt\fP [options] [\fB\-\-\fP] \fIoptstring\fP \fIparameters\fP .sp \fBgetopt\fP [options] \fB\-o\fP|\fB\-\-options\fP \fIoptstring\fP [options] [\fB\-\-\fP] \fIparameters\fP .SH "DESCRIPTION" .sp \fBgetopt\fP is used to break up (\fIparse\fP) options in command lines for easy parsing by shell procedures, and to check for valid options. It uses the GNU \fBgetopt\fP(3) routines to do this. .sp Les paramètres fournis à \fBgetopt\fP sont de deux types : le premier est constitué des options qui modifient la façon dont \fBgetopt\fP fera l\(cqanalyse (les \fIoptions\fP et \fIchaîne_options\fP dans le \fBSYNOPSIS\fP) et les paramètres à analyser (\fIparamètres\fP dans le \fBSYNOPSIS\fP). Le second type commence dès le premier paramètre qui n\(cqest pas une option ou après la première occurrence de « \fB\-\-\fP ». Si aucune option « \fB\-o\fP » ou « \fB\-\-options\fP » n\(cqest présente dans la première partie, le premier paramètre de la seconde partie sera utilisé comme chaîne d’options courtes. .sp If the environment variable \fBGETOPT_COMPATIBLE\fP is set, or if the first \fIparameter\fP is not an option (does not start with a \*(Aq\fB\-\fP\*(Aq, the first format in the \fBSYNOPSIS\fP), \fBgetopt\fP will generate output that is compatible with that of other versions of \fBgetopt\fP(1). It will still do parameter shuffling and recognize optional arguments (see the \fBCOMPATIBILITY\fP section for more information). .sp Les implémentations traditionnelles de \fBgetopt\fP(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\(cqinterpréteur de commandes (en général avec la commande \fBeval\fP). Cela permet de préserver ces caractères, mais vous devez appeler \fBgetopt\fP d\(cqune façon non compatible avec les autres versions (la deuxième ou troisième forme dans le \fBSYNOPSIS\fP). Pour déterminer si cette version améliorée de \fBgetopt\fP(1) est installée, vous pouvez utiliser l\(cqoption spéciale de test (\fB\-T\fP). .SH "OPTIONS" .sp \fB\-a\fP, \fB\-\-alternative\fP .RS 4 Permettre aux options longues de ne commencer que par un seul « \fB\-\fP ». .RE .sp \fB\-l\fP, \fB\-\-longoptions\fP \fIoptions_longues\fP .RS 4 Les options longues (plusieurs caractères) à reconnaître. Plusieurs noms d\(cqoption peuvent être fournis en une seule fois, en séparant les noms par des virgules. Cette option peut être fournie plusieurs fois, les \fIoptions_longues\fP se cumulent. Chaque nom d\(cqoption dans \fIoptions_longues\fP peut être suivi d\(cqun deux\-points pour indiquer que l\(cqoption attend un paramètre, et par deux signes deux\-points pour indiquer qu\(cqelle a un paramètre optionnel. .RE .sp \fB\-n\fP, \fB\-\-name\fP \fInom\-de\-programme\fP .RS 4 Le nom qui sera utilisé par \fBgetopt\fP(3) pour signaler les erreurs. Notez que les erreurs de \fBgetopt\fP(1) sont signalées comme provenant de getopt. .RE .sp \fB\-o\fP, \fB\-\-options\fP \fIoptions_courtes\fP .RS 4 The short (one\-character) options to be recognized. If this option is not found, the first parameter of \fBgetopt\fP that does not start with a \*(Aq\fB\-\fP\*(Aq (and is not an option argument) is used as the short options string. Each short option character in \fIshortopts\fP 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 \*(Aq\fB+\fP\*(Aq or \*(Aq\fB\-\fP\*(Aq to influence the way options are parsed and output is generated (see the \fBSCANNING MODES\fP section for details). .RE .sp \fB\-q\fP, \fB\-\-quiet\fP .RS 4 Désactiver le signalement des erreurs par \fBgetopt\fP(3). .RE .sp \fB\-Q\fP, \fB\-\-quiet\-output\fP .RS 4 Ne pas produire la sortie normale. Les erreurs sont toujours remontées par \fBgetopt\fP(3), sauf si l\(cqoption \fB\-q\fP est utilisée. .RE .sp \fB\-s\fP, \fB\-\-shell\fP \fIshell\fP .RS 4 Set quoting conventions to those of \fIshell\fP. If the \fB\-s\fP option is not given, the \fBBASH\fP conventions are used. Valid arguments are currently \*(Aq\fBsh\fP\*(Aq, \*(Aq\fBbash\fP\*(Aq, \*(Aq\fBcsh\fP\*(Aq, and \*(Aq\fBtcsh\fP\*(Aq. .RE .sp \fB\-T\fP, \fB\-\-test\fP .RS 4 Vérifier si la version de \fBgetopt\fP(1) correspond à cette version améliorée ou à une version plus ancienne. Aucune sortie n\(cqest créée et la valeur de retour est 4. Les autres implémentations de \fBgetopt\fP(1) (ou celle\-ci si la variable d\(cqenvironnement \fBGETOPT_COMPATIBLE\fP est positionnée) renverront « \fB\-\-\fP », avec une valeur de retour de 0. .RE .sp \fB\-u\fP, \fB\-\-unquoted\fP .RS 4 Ne pas placer la sortie entre guillemets. Remarquez que les espaces et caractères spéciaux (pour l\(cqinterpréteur de commandes utilisé) peuvent poser des problèmes dans ce mode (comme pour les autres implémentations de \fBgetopt\fP(1)). .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Afficher l’aide\-mémoire puis quitter. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Afficher le numéro de version et quitter. .RE .SH "ANALYSE" .sp Cette section indique le format de la seconde partie des paramètres de \fBgetopt\fP (\fIparamètres\fP dans le \fBSYNOPSIS\fP). La section suivante (\fBSORTIE\fP) 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 \fBgetopt\fP (consultez \fBEXEMPLES\fP). Toutes les analyses sont faites en utilisant les routines de GNU \fBgetopt\fP(3). .sp Les paramètres sont analysés de la gauche vers la droite. Chaque paramètre est classé en option courte, option longue, argument d\(cqune option ou paramètre n\(cqétant pas une option. .sp Une option courte est un « \fB\-\fP » suivi par le caractère de l\(cqoption. Si l\(cqoption a un paramètre obligatoire, il peut être indiqué juste après le caractère de l\(cqoption ou comme paramètre suivant (c\(cqest\-à\-dire en les séparant par une espace). Si l\(cqoption a un paramètre optionnel, il doit être écrit juste après le caractère de l\(cqoption (quand le paramètre est présent). .sp Il est possible d\(cqindiquer plusieurs options courtes après un « \fB\-\fP », tant que toutes les options (sauf peut\-être la dernière) n\(cqont pas de paramètre obligatoire ou optionnel. .sp Une option longue commence normalement par « \fB\-\-\fP », suivi par le nom de l\(cqoption longue. Si l\(cqoption nécessite un paramètre, celui\-ci peut être indiqué juste après le nom de l\(cqoption, en insérant le caractère « \fB=\fP » entre, ou il peut être indiqué dans le paramètre suivant (c\(cqest\-à\-dire en le séparant par une espace). Si l\(cqoption a un paramètre optionnel, il doit être indiqué juste après le nom de l\(cqoption, en insérant le caractère « \fB=\fP » entre, si le paramètre est présent (quand vous ajoutez le caractère « \fB=\fP » sans rien derrière, c\(cqest comme si le paramètre n\(cqétait pas présent ; c\(cqest un bogue mineur, consultez la section \fBBOGUES\fP). Les options longues peuvent être abrégées, tant que l\(cqabréviation n\(cqest pas ambiguë. .sp Chaque paramètre ne commençant pas par un « \fB\-\fP » et n\(cqétant pas un paramètre obligatoire est un « paramètre n\(cqétant pas une option ». Chaque paramètre situé après un « \fB\-\-\fP » est toujours interprété comme un « paramètre n\(cqétant pas une option ». Si la variable d\(cqenvironnement \fBPOSIXLY_CORRECT\fP est positionnée, ou si la chaîne des options courtes commence par un « \fB+\fP », tous les paramètres suivant le premier paramètre n\(cqétant pas une option sont interprétés comme des paramètres n\(cqétant pas des options. .SH "SORTIE" .sp La sortie est générée pour chaque élément décrit dans la section précédente. Elle reprend l\(cqordre des éléments indiqués en entrée, à l\(cqexception des paramètres n\(cqétant pas des options. La sortie peut être faite dans un mode \fIcompatible\fP (\fInon protégé\fP : sans guillemets) ou de telle sorte que les espaces ou autres caractères spéciaux des paramètres soient préservés (consultez \fBPROTECTIONS\fP). Quand la sortie est utilisée dans un script shell, elle paraîtra composée d\(cqéléments distincts qui peuvent être traités un par un (en utilisant la commande \fIshift\fP de la plupart des langages de script). Ce n\(cqest pas parfait dans le mode \fInon protégé\fP parce que les éléments peuvent être coupés à des endroits non prévus s\(cqils contiennent des espaces ou des caractères spéciaux. .sp En cas de problème lors de l\(cqanalyse des paramètres, par exemple si un paramètre obligatoire n\(cqest pas trouvé ou si une option n\(cqest pas reconnue, une erreur est renvoyée sur la sortie d\(cqerreur standard. Les éléments incriminés ne seront pas affichés et un code d\(cqerreur non nul est renvoyé. .sp Pour une option courte, un seul « \fB\-\fP » et le caractère de l\(cqoption sont générés comme un paramètre. Si l\(cqoption est suivie de son paramètre, le paramètre suivant de la sortie sera le paramètre de l\(cqoption. Si l\(cqoption accepte un paramètre optionnel, mais qu\(cqaucun n\(cqa é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\(cqautres implémentations de \fBgetopt\fP(1) ne gèrent pas les paramètres optionnels. .sp Si plusieurs options courtes ont été précisées après un unique « \fB\-\fP », chacune sera présente dans la sortie dans un paramètre distinct. .sp Pour une option longue, « \fB\-\-\fP » et le nom complet de l\(cqoption sont générés en un seul paramètre. C\(cqest le cas que l\(cqoption soit abrégée ou qu\(cqelle soit indiquée avec un seul « \fB\-\fP » dans l\(cqentrée. Les paramètres sont traités comme pour les options courtes. .sp Normalement, aucun paramètre n\(cqétant pas une option n\(cqest généré sur la sortie tant que toutes les options et leurs paramètres n\(cqont pas été traités. Ensuite, « \fB\-\-\fP » est généré séparément comme un paramètre, et est suivi des paramètres n\(cqétant pas des options, dans l\(cqordre 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 « \fB\-\fP », et seulement dans ce cas, les paramètres n\(cqétant pas des options sont générés quand ils sont trouvés dans l\(cqentrée (ce n\(cqest pas géré si la première forme du \fBSYNOPSIS\fP est utilisée ; dans ce cas, les « \fB\-\fP » et « \fB+\fP » de tête sont ignorés). .SH "PROTECTIONS" .sp Dans le mode compatible, les espaces et caractères spéciaux dans les paramètres des options ou les paramètres n\(cqé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\(cqidée est de générer la sortie avec des protections (à l\(cqaide 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 \fBeval\fP de l\(cqinterpréteur), le découpage en paramètres est correct. .sp La protection n\(cqest pas activée si la variable d\(cqenvironnement \fBGETOPT_COMPATIBLE\fP est positionnée, si la première forme du \fBSYNOPSIS\fP est utilisée ou si l\(cqoption « \fB\-u\fP » est trouvée. .sp Les conventions de protection diffèrent suivant les interpréteurs de commandes. Vous pouvez préciser l\(cqinterpréteur de commandes que vous utilisez avec l\(cqoption « \fB\-s\fP ». Les interpréteurs de commandes suivants sont gérés : « \fBsh\fP », « \fBbash\fP », « \fBcsh\fP » et « \fBtcsh\fP ». En fait, seuls deux types sont différenciés : ceux utilisant les conventions de \fBsh\fP et ceux utilisant les conventions de \fBcsh\fP. Il y a de grandes chances que si vous utilisez un autre langage de script, il utilise une de ces conventions. .SH "MODES D\(cqANALYSE" .sp Le premier caractère de la chaîne de description des options courtes peut être un « \fB\-\fP » ou un « \fB+\fP » pour utiliser un mode spécial d\(cqanalyse. Si la première forme du \fBSYNOPSIS\fP est appelée, ils sont ignorés ; mais la variable d\(cqenvironnement \fBPOSIXLY_CORRECT\fP est toujours examinée. .sp Si le premier caractère est un « \fB+\fP », ou si la variable d\(cqenvironnement \fBPOSIXLY_CORRECT\fP est positionnée, l\(cqanalyse s\(cqarrête dès qu\(cqun paramètre n\(cqétant pas une option est rencontré (c\(cqest\-à\-dire un paramètre qui ne commence pas par « \fB\-\fP »). Aucun des paramètres suivants ne sera considéré comme une option. .sp Si le premier caractère est un « \fB\-\fP », 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*\-\-\fB » qui a été généré. Notez que dans ce mode, le paramètre « \fP\-\-* » est encore généré, mais il sera toujours le dernier paramètre. .SH "COMPATIBILITÉ" .sp Cette version de \fBgetopt\fP(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. .sp If the first character of the first parameter of getopt is not a \*(Aq\fB\-\fP\*(Aq, \fBgetopt\fP 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 \fBPOSIXLY_CORRECT\fP is set, in which case, \fBgetopt\fP will prepend a \*(Aq\fB+\fP\*(Aq before short options automatically. .sp La variable d\(cqenvironnement \fBGETOPT_COMPATIBLE\fP force \fBgetopt\fP dans un mode de compatibilité. Avec à la fois cette variable d\(cqenvironnement et \fBPOSIXLY_CORRECT\fP, il sera 100 % compatible pour les programmes « difficiles ». D\(cqhabitude, cependant, ni l\(cqune ni l\(cqautre n\(cqest nécessaire. .sp Dans ce mode, les « \fB\-\fP » ou « \fB+\fP » de tête des options courtes sont ignorés. .SH "CODES DE RETOUR" .sp \fBgetopt\fP returns error code \fB0\fP for successful parsing, \fB1\fP if \fBgetopt\fP(3) returns errors, \fB2\fP if it does not understand its own parameters, \fB3\fP if an internal error occurs like out\-of\-memory, and \fB4\fP if it is called with \fB\-T\fP. .SH "EXEMPLES" .sp Example scripts for (ba)sh and (t)csh are provided with the \fBgetopt\fP(1) distribution, and are installed in \fI/usr/share/doc/util\-linux\fP directory. .SH "ENVIRONNEMENT" .sp \fBPOSIXLY_CORRECT\fP .RS 4 Cette variable d\(cqenvironnement est utilisée par \fBgetopt\fP(3). Lorsqu\(cqelle est positionnée, l\(cqanalyse s\(cqarrête au premier paramètre n\(cqétant ni une option ni le paramètre d\(cqune option. Tous les paramètres restants sont également interprétés comme des paramètres n\(cqétant pas des options, qu\(cqils commencent par un « \fB\-\fP » ou non. .RE .sp \fBGETOPT_COMPATIBLE\fP .RS 4 Forcer \fBgetopt\fP à utiliser le premier format d\(cqappel, comme indiqué dans le \fBSYNOPSIS\fP. .RE .SH "BOGUES" .sp \fBgetopt\fP(3) can parse long options with optional arguments that are given an empty optional argument (but cannot do this for short options). This \fBgetopt\fP(1) treats optional arguments that are empty as if they were not present. .sp La syntaxe n\(cqest pas très intuitive si vous ne voulez pas d\(cqoption courte : vous devez explicitement les définir comme des chaînes vides. .SH "AUTEUR" .sp .MTO "frodo\(atfrodo.looijaard.name" "Frodo Looijaard" "" .SH "VOIR AUSSI" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3) .SH "SIGNALER DES BOGUES" .sp Pour signaler un bogue, utilisez le gestionnaire de bogues sur \c .URL "https://github.com/util\-linux/util\-linux/issues" "" "." .SH "DISPONIBILITÉ" .sp La commande \fBgetopt\fP fait partie du paquet util\-linux, elle est disponible sur \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "l’archive du noyau Linux" "."