Adaptado de la sección "Sintaxis de argumento de utilidad" del estándar POSIX :
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
La utilidad en el ejemplo se llama utility_name. Le siguen opciones , argumentos de opción y operandos .
Los argumentos que consisten en -caracteres y letras simples o dígitos, como a, se conocen como opciones (o, históricamente, banderas ). Ciertas opciones van seguidas de un argumento de opción , como se muestra con [-c option_argument]. Los argumentos que siguen a las últimas opciones y argumentos de opción se denominan operandos .
El estándar también define "argumento" como
En el lenguaje de comandos de shell, un parámetro pasado a una utilidad como el equivalente de una sola cadena en la argvmatriz creada por una de las execfunciones. Un argumento es una de las opciones, argumentos de opción u operandos que siguen al nombre del comando.
Todas las cosas después utility_namede la línea de comando son los argumentos de la utilidad , y todos se muestran en los parámetros posicionales si se trata de un script de shell. Los términos opción, argumento-opción y operando son nombres más específicos para estos argumentos en la línea de comando.
"Marcar" y "cambiar" son sinónimos comunes de "opción".
En el caso de
utility -a b=c
-ay b=cson argumentos,
-aes una opción si la utilidad la reconoce como tal (la lnutilidad no tiene -xopción, por -xlo que no es una opción lnestrictamente hablando y ln -xactivaría un mensaje de diagnóstico),
b=ces un argumento de opción si la -aopción toma un argumento, de lo contrario es un operando,
by noc son opciones, argumentos de opción y no operandos en sí mismos.
Como notará en mi texto anterior, trabajar desde la sinopsis de una utilidad (como se indica en el manual de la utilidad) hubiera sido más fácil que tratar de decodificar un comando genérico escrito en la línea de comando. El manual indicará claramente qué opciones toman argumentos de opción y qué argumentos son operandos, etc.
Llamar a cun "valor" está en mi humilde opinión perfectamente bien. No es algo estandarizado, pero muy pocos lo malinterpretarían si dijera " ces el valor dado ab ". Sería claro por el contexto de la utilidad en cuestión.
Por ejemplo
$ awk -v var="d" '...' data.in
Cualquiera que conozca awkdiría que -v var="d"significa "a la awkvariable varse le asigna el valor den la línea de comando ".