Pregunta

¿Cómo conseguir el argumento posicional nth en Bash, donde n es variable?

¿Fue útil?

Solución

función indirecta

El uso de Bash:

#!/bin/bash
n=3
echo ${!n}

Ejecutar el archivo:

$ ./ind apple banana cantaloupe dates

Produce:

cantaloupe

Editar

También se puede hacer el corte en lonchas gama:

echo ${@:$n:1}

pero no subíndices de matriz:

echo ${@[n]}  #  WON'T WORK

Otros consejos

Si N se guarda en una variable, utilice

eval echo \${$N}

Si se trata de un uso constante

echo ${12}

desde

echo $12

no significa lo mismo!

$1 $2 ... $n

$0 contiene el nombre del script.

Como se puede ver en la Bash con ejemplos , sólo tiene que utilizar las variables automáticas $ 1, $ 2, y así sucesivamente.

$ # se utiliza para obtener el número de argumentos.

Leer

Manejo de parámetros posicionales

y

expansión Parámetro

$ 0: el primer parámetro de posición

$ 1 ... $ 9: los elementos de la lista argumento de 1 a 9

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top