Este artigo irá explicar o que é Positional parameter e como usar Positional parameter.
Parâmetro posicional
Um parâmetro posicional é um argumento especificado na linha de comando, usado para iniciar o processo atual em um shell. Os valores dos parâmetros posicionais são armazenados em um conjunto especial de variáveis mantidas pelo shell.
Variáveis que armazenam parâmetros posicionais
Um exemplo típico de shell que usa parâmetros posicionais é o bash. Você pode usar o bash no Linux, BSD, macOS X e Windows 10.
Considere o seguinte comando bash. O nome do comando é mycommand. A linha de comando tem três parâmetros: um, dois e três quatro.
mycommand one two "three four"
Os parâmetros posicionais são delimitados por um espaço. O shell interpreta as coisas após os espaços como parâmetros individuais. Se o próprio parâmetro contiver um espaço, coloque-o entre aspas, como em “três quatro” acima.
Enquanto o mycommand está em execução, o bash fornece as seguintes variáveis de shell:
Nome variável | Valor |
---|---|
$0 | meu comando |
$1 | 1 |
$2 | dois |
$3 | três quatro |
$# | 3 |
[email protected] | um dois três quatro |
$* | um dois três quatro |
A variável $0 é definida como a primeira palavra do comando – o nome do comando. Esta variável é útil porque os comandos podem ser renomeados ou executados usando um link simbólico. Alguns programas se comportam de maneira diferente dependendo do nome do comando usado para executar o programa. $0 permite que um programa veja qual nome de comando o lançou.
As variáveis $1, $2 e $3 contêm os valores do primeiro, segundo e terceiro parâmetros, respectivamente. Se houvesse um quarto parâmetro, seu valor seria colocado na variável $4. Parâmetros maiores que 9 podem ser acessados usando chaves ao redor do número; por exemplo, ${10} seria o décimo parâmetro e ${123} seria o 123º.
A variável $# contém o número de parâmetros posicionais, excluindo $0.
A variável [email protected] contém o valor de todos os parâmetros posicionais, exceto $0.
A variável $* é a mesma que [email protected], exceto quando estiver entre aspas. Quando colocado entre aspas duplas, $* se expande para $1c $2c $3c … onde c é o primeiro caractere de $IFS, a variável separadora de campo interno do bash. O IFS é usado para divisão de palavras e seu valor padrão é “espaço, tabulação ou nova linha” – é aqui que o bash vê o início e o fim de uma palavra.
Se o valor de $IFS for “_” (um sublinhado), “[email protected]”se expande para:
one two three four
Enquanto “$*” se expande para:
one_two_three four
Exemplos
Aqui estão alguns exemplos de como usar parâmetros posicionais no bash.
Usando o comando set embutido, o valor de [email protected] pode ser modificado para o shell atual. Tudo após o conjunto – é registrado como um parâmetro posicional.
set -- one two "three four"
Agora podemos iterar sobre essas variáveis usando for … in:
for arg in [email protected]; do echo "$arg"; done
one two three four
Em bash, [email protected] é a lista padrão para iterar ao executar, portanto, este comando também funciona:
for arg; do echo "$arg"; done
one two three four
Iterando sobre “$*” (com aspas duplas) fornece uma string concatenada de parâmetros posicionais, unidos com o primeiro caractere de $IFS:
IFS=","; for arg in "$*"; do echo "$arg"; done
one,two,three four
Para obter mais informações, consulte a documentação do shell de comando bash.
0 Comments