Uma opção (também chamada de "flag" ou "switch") é um tipo de argumento de linha de comando. Um argumento de linha de comando é uma única palavra (ou string entre aspas) presente na linha de comando de um utilitário ou função shell.
Ao chamar um shell script ou função shell com um certo número de argumentos, cada argumento individual estará disponível como um parâmetro posicional dentro do script ou da função.
Terminologia:
Um "argumento" pode ser
- uma "opção" (como
-a
), - um "argumento-da-opção" (como
foo
em-a foo
se-a
receber um argumento) ou - um "operando" (um argumento de não opção que também não é um argumento de opção, por exemplo
foo
in-a foo
if-a
não não aceita um argumento de opção) .
Exemplo real de todos os itens acima (usando o GNU mv
):
mv -t targetdir -f file1 file2
- Argumentos:
-t
,targetdir
,-f
,file1
efile2
- Opções:
-t
e-f
- Argumentos de opções:
targetdir
- Operandos:
file1
efile2
.
De as definições POSIX :
[An argument is, 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 the exec functions. An argument is one of the options, option-arguments, or operands following the command name.
[An option is an] argument to a command that is generally used to specify changes in the utility's default behavior.
[An option-argument is a] parameter that follows certain options. In some cases an option-argument is included within the same argument string as the option-in most cases it is the next argument.
[An operand is an] argument to a command that is generally used as an object supplying information to a utility necessary to complete its processing. Operands generally follow the options in a command line.
Os parâmetros posicionais em um shell script ou função shell serão os argumentos dados na linha de comando do script ou da função, independentemente de os argumentos serem opções, argumentos de opção ou operandos.
Os parâmetros posicionais também podem ser definidos usando
set -- something "something else" bumblebees
Isso define $1
, $2
e $3
para as três cadeias de caracteres e limpa quaisquer outros parâmetros posicionais.
Nesse caso, os parâmetros posicionais não têm mais relação com os argumentos transmitidos na linha de comando do utilitário.
Veja também: