2016-09-11 3 views
0

Ich möchte auf ein Argument zugreifen, wenn das Skript ausgeführt wurde, und ich möchte das spezifische Argument basierend auf der Variablen abrufen. Deshalb möchte ich das Argument $2 zu bekommen, aber anstatt zwei eingeben, verwende ich die Variable, die eine ReiheBash - Erhalte ein spezifisches Argument mit der Zahl in der Variable

Etwas enthält ähnliche

FOO=2 echo $FOO

Das Problem beide ist Variablen und Argumente sowohl $ verwenden, so ich Ich weiß nicht, wie man ein spezifisches Argument basierend auf der Zahl in der Variablen aufruft. Ich weiß, ich erkläre das fürchterlich, korrigiere mich, wenn du kannst.

Antwort

1

Bash erlaubt Indirection mit der Notation ${!name}, wobei name der Name einer Variablen ist, deren Wert der Name der Variablen ist, auf die Sie zugreifen möchten. Also, in Ihrem Beispiel könnten Sie den zweiten Positionsparameter drucken wie

foo=2 
printf '%s\n' "${!foo}" 

oder

printf 'The value at %s is %s\n' "$foo" "${!foo}" 

, das so etwas wie

The value at 2 is secondParameterValue 

einige gute Lektüre auf indirection gedruckt werden kann here

finden
+0

Perfekt. Vielen Dank –

Verwandte Themen