Adaptado de a seção "Sintaxe do argumento do utilitário" do padrão POSIX :
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
O utilitário no exemplo é denominado utility_name
. Ele é seguido por opções , opção-arguments e operandos .
Os argumentos que consistem em -
caracteres e letras únicas ou dígitos, como a
, são conhecidos como opções (ou, historicamente, flags ). Certas opções são seguidas por um argumento da opção , conforme mostrado em [-c option_argument]
. Os argumentos que seguem as últimas opções e os argumentos da opção são denominados operandos .
O padrão também define "argumento" como
In the shell command language, a parameter passed to a utility as the equivalent of a single string in the
argv
array created by one of theexec
functions. An argument is one of the options, option-arguments, or operands following the command name.
Todas as coisas após o utility_name
na linha de comando são os argumentos do utilitário, e todas elas aparecem nos parâmetros posicionais se for um script de shell. Os termos option, option-argument e operand são nomes mais específicos para esses argumentos na linha de comando.
"Sinalizar" e "alternar" são sinônimos comuns para "opção".
No caso de
utility -a b=c
-
-a
eb=c
são argumentos, -
-a
é uma opção se o utilitário o reconhecer como tal (o utilitárioln
não tem-x
, portanto-x
não é uma opção paraln
, estritamente falando, eln -x
acionaria uma mensagem de diagnóstico), -
b=c
é um argumento de opção se a opção-a
receber um argumento, caso contrário, é um operando -
b
ec
são opções não , argumentos de opção e não operandos em si mesmos.
Como você notou no meu texto acima, trabalhar com a sinopse de um utilitário (conforme fornecido pelo manual do utilitário) teria sido mais fácil do que tentar decodificar um comando genérico digitado no comando linha. O manual indicará claramente quais opções aceitam os argumentos da opção e quais argumentos são operandos, etc.
Para chamar c
, um "valor" é IMHO perfeitamente ok. Não é algo padronizado, mas poucos o interpretariam mal se você dissesse " c
é o valor dado a b
". Ficaria claro a partir do contexto da utilidade em questão.
Por exemplo
$ awk -v var="d" '...' data.in
Qualquer pessoa que saiba sobre awk
dirá que -v var="d"
significa que " o awk
variable var
está atribuído ao valor d
na linha de comando ".