Adapté de la section "Utility Argument Syntax" de la norme POSIX :
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
L'utilitaire de l'exemple est nommé utility_name
. Il est suivi par les options , les arguments d'option et les opérandes .
Les arguments qui se composent de -
caractères et de lettres ou de chiffres simples, tels que a
, sont connus sous le nom d' options (ou, historiquement, de drapeaux ). Certaines options sont suivies d'un argument d'option , comme illustré avec [-c option_argument]
. Les arguments suivant les dernières options et options-arguments sont appelés opérandes .
La norme définit également "l'argument" comme
Dans le langage de commande shell, un paramètre transmis à un utilitaire comme l'équivalent d'une seule chaîne dans le argv
tableau créé par l'une des exec
fonctions. Un argument est l'une des options, des arguments d'option ou des opérandes suivant le nom de la commande.
Toutes les choses après la utility_name
ligne de commande sont les arguments de l'utilitaire , et ils apparaissent tous dans les paramètres de position s'il s'agit d'un script shell. Les termes option, option-argument et opérande sont des noms plus spécifiques pour ces arguments sur la ligne de commande.
"Flag" et "switch" sont des synonymes courants de "option".
Dans le cas de
utility -a b=c
-a
et b=c
sont des arguments,
-a
est une option si l'utilitaire la reconnaît comme telle (l' ln
utilitaire n'a pas d' -x
option, donc -x
n'est pas une option à ln
proprement parler et ln -x
déclencherait un message de diagnostic),
b=c
est un argument-option si l' -a
option prend un argument, sinon c'est un opérande,
b
et nec
sont pas des options, des arguments d’option et non des opérandes en eux-mêmes.
Comme vous le constatez dans mon texte ci-dessus, travailler à partir du synopsis d'un utilitaire (comme indiqué dans le manuel de l'utilitaire) aurait été plus facile que d'essayer de décoder une commande générique tapée sur la ligne de commande. Le manuel indiquera clairement quelles options prennent les arguments d'option et quels arguments sont des opérandes, etc.
Appeler c
une "valeur" est à mon humble avis parfaitement ok. Ce n'est pas quelque chose qui est standardisé, mais très peu de gens vous comprendraient mal si vous dites " c
est la valeur donnée àb
". Cela ressortirait clairement du contexte de l'utilité en question.
Par exemple
$ awk -v var="d" '...' data.in
Quiconque est au courant awk
dirait que cela -v var="d"
signifie " la awk
variable var
se voit attribuer la valeur d
sur la ligne de commande ".