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
argvarray created by one of theexecfunctions. 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
-
-aeb=csão argumentos, -
-aé uma opção se o utilitário o reconhecer como tal (o utilitáriolnnão tem-x, portanto-xnão é uma opção paraln, estritamente falando, eln -xacionaria uma mensagem de diagnóstico), -
b=cé um argumento de opção se a opção-areceber um argumento, caso contrário, é um operando -
becsã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 ".