Différence entre les termes: "option", "argument", et "paramètre"?

Quelles sont les différences entre ces termes: "option", "argument", et "paramètre"? Dans les pages de manuel, ces termes semblent souvent être utilisés de manière interchangeable.

28
demandé sur 0xc0de 2016-04-08 12:07:09

2 réponses

commande est divisé en un tableau de chaînes de caractères arguments. L'Argument 0 est (normalement) le nom de la commande, l'argument 1, le premier élément suivant la commande, et ainsi de suite.

$ ls -la /tmp /var/tmp
arg0 = ls
arg1 = -la
arg2 = /tmp
arg3 = /var/tmp

option est un type documenté de argument modifier le comportement d'un commande, e.g. -l signifie communément "long", -v verbeux. -lvdeux options combinées dans un argument. Il y a aussi de longues options comme --verbose. Comme leur nom l'indique, les options sont généralement facultatives. Il y a cependant quelques commandes avec des "options obligatoires"paradoxales.

$ ls -la /tmp /var/tmp
option1= -l
option2= -a

paramètre est un argument qui fournit des informations à commande ou l'un de ses options, par exemple -o file,le fichier est le paramètre de l' -o option. Contrairement aux options, dont la possibilité les valeurs sont codées dur dans les programmes, les paramètres ne sont généralement pas, de sorte que l'utilisateur est libre d'utiliser n'importe quelle chaîne de caractères qui convient à ses besoins. Si vous devez passer un paramètre qui ressemble à une option mais qui ne devrait pas être interprété comme tel, vous pouvez le séparer du début de la ligne de commande avec un double tiret:--.

$ ls -la /tmp /var/tmp
parameter1= /tmp
parameter2= /var/tmp

$ ls -l -- -a
option1    = -l
parameter1 = -a

Enfin, il y a sous-commandes, également connu sous le nom de fonctions / (bas niveau) commandes, qui sont utilisés avec "métacommands" qui intègrent plusieurs séparer les commandes, comme busybox,git,apt-get,openssl, et l'aime. Avec eux, vous pouvez avoir des options globales qui précèdent la sous-commande, et des options spécifiques à la sous-commande qui suivent la sous-commande. Contrairement aux paramètres, la liste des sous-commandes possibles est codée en dur dans la commande elle-même. par exemple:

$ busybox ls -l
command            = busybox
subcommand         = ls
subcommand option1 = -l

$ git --git-dir=a.git --work-tree=b -C c status -s
command            = git
command option1    = --git-dir=a.git
command option2    = --work-tree=b
command option3    = -C
subcommand         = status
subcommand option1 = -s

Notez que certaines commandes comme test,tar,dd et find ont une syntaxe d'analyse d'arguments plus complexe que celles décrites précédemment et peuvent avoir certains ou la totalité de leurs arguments analysée comme expressions,operands,keys et des composants similaires spécifiques aux commandes.

49
répondu jlliagre 2018-07-20 08:05:11

man page pour une commande Unix typique utilise souvent les Termes argument, option et parameter. Au niveau le plus bas, nous avons argument et tout est un argument, y compris la commande (filesystem path to the) elle-même.

dans un script shell, vous accédez aux arguments en utilisant les variables spéciales .. $n. D'autres langues ont des moyens similaires pour y accéder (généralement à travers un tableau avec un nom comme argv).

les Arguments peuvent être interprétés comme suit: options si vous le souhaitez. La façon de procéder est propre à la mise en œuvre. Vous pouvez soit rouler votre propre, par exemple un shell (comme bash) script peut utiliser à condition getopts ou getopt commandes.

ceux-ci définissent typiquement un option comme argument commençant par un trait d'Union (-) et certaines options peuvent utiliser des arguments de procédure comme ses paramètres. Plus capable d'analyseurs (e.g getopt) support de mélange à court de forme (-h) et la forme longue (--help) option.

généralement, la plupart des options prennent zéro ou un paramètre. De tels paramètres sont aussi parfois appelés valeurs.

les options supportées sont codées dans le code du programme (E. g in the invocation of getopts dans un script shell). Tous les arguments restants après que les options ont été consommées sont communément appelés paramètres de position lorsque l'ordre dans lequel ils sont donnés est importante (ceci est en contraste avec les options qui habituellement peuvent être donnés dans n'importe quel ordre).

encore une fois, le script définit ce que sont les paramètres de position par la façon dont il les consomme et les utilise.

donc une commande typique

$ ls -I README -l foo 'bar car' baz

a sept arguments: /usr/bin/ls,-I,README,-l,foo,bar car et baz accessibilité