Como obter o n-ésimo argumento posicional em bash?
-
19-09-2019 - |
Pergunta
Como obter o n
th argumento posicional em Bash, onde n
é variável?
Solução
Use o recurso de indireção de Bash:
#!/bin/bash
n=3
echo ${!n}
Executando esse arquivo:
$ ./ind apple banana cantaloupe dates
Produz:
cantaloupe
Editar:
Você também pode fazer fatia de matriz:
echo ${@:$n:1}
Mas não os subscritos de matriz:
echo ${@[n]} # WON'T WORK
Outras dicas
Se N
é salvo em uma variável, use
eval echo \${$N}
Se for um uso constante
echo ${12}
desde
echo $12
não significa o mesmo!
$1 $2 ... $n
$0
Contém o nome do script.
Como você pode ver na Bash por Exemplo, você só precisa usar o automático de variáveis $1, $2, e assim por diante.
$# é usado para obter o número de argumentos.
Ler
Manipulação de parâmetros posicionais
e
$ 0: o primeiro parâmetro posicional
$ 1 ... $ 9: os elementos da lista de argumentos de 1 a 9
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow