Frage

Wie das nth Positions Argument in Bash bekommen, wo n Variable ist?

War es hilfreich?

Lösung

Mit Bash indirection Funktion:

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

Ausführen dieser Datei:

$ ./ind apple banana cantaloupe dates

Erzeugt:

cantaloupe

Edit:

Sie können auch Array Slicing tun:

echo ${@:$n:1}

aber nicht Array-Indizes:

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

Andere Tipps

Wenn N in einer Variablen gespeichert wird, verwenden Sie

eval echo \${$N}

, wenn es eine Konstante Verwendung

echo ${12}

da

echo $12

bedeutet nicht das gleiche!

$1 $2 ... $n

$0 enthält den Namen des Skripts.

Wie Sie in dem Bash von Beispiel sehen können , müssen Sie nur die automatischen Variablen 1, 2, $ und so $ verwenden.

$ # verwendet wird, um die Anzahl von Argumenten zu erhalten.

Lesen

Handhabung Positionsparameter

und

Parameter Expansion

$ 0: Der erste Positionsparameter

$ 1 ... $ 9: die Argumentlistenelemente von 1 bis 9

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top