web-dev-qa-db-fra.com

Comment obtenir le nième argument positionnel en bash?

Comment obtenir le nème argument positionnel dans Bash, où n est variable?

69
hcs42

Utilisez la fonction d'indirection de Bash:

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

Exécution de ce fichier:

$ ./ind Apple banana cantaloupe dates

Produit:

cantaloupe

Modifier:

Vous pouvez également effectuer un découpage de tableau:

echo ${@:$n:1}

mais pas les indices de tableau:

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

Si N est enregistré dans une variable, utilisez

eval echo \${$N}

si c'est une utilisation constante

echo ${12}

puisque

echo $12

ne veut pas dire la même chose!

12
Johannes Weiss
$1 $2 ... $n

$0 contient le nom du script.

7
Alex Barrett

Comme vous pouvez le voir dans le Bash by Example , il vous suffit d'utiliser les variables automatiques $ 1, $ 2, etc.

$ # est utilisé pour obtenir le nombre d'arguments.

0
Zen