Domanda

Come ottenere il nth posizionale argomento in Bash, dove n è variabile?

È stato utile?

Soluzione

L'uso di Bash riferimento indiretto caratteristica:

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

Eseguendo il file:

$ ./ind apple banana cantaloupe dates

Produce:

cantaloupe

Edit:

Si può anche fare un array di taglio:

echo ${@:$n:1}

ma non gli indici di matrice:

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

Altri suggerimenti

Se N viene salvato in una variabile, utilizzare

eval echo \${$N}

se si tratta di un uso costante

echo ${12}

dal

echo $12

non significa la stessa cosa!

$1 $2 ... $n

$0 contiene il nome dello script.

Come si può vedere nel Bash per esempi , è sufficiente utilizzare le variabili automatiche $ 1, $ 2, e così via.

$ # è usato per ottenere il numero di argomenti.

Leggi

Gestione parametri posizionali

e

espansione di parametro

$ 0: il primo parametro posizionale

$ 1 ... $ 9: gli elementi della lista argomento da 1 a 9

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top