function f(){ i=1; echo "${!i}" ; }
f a b
Ausgang: a
Gibt es eine Möglichkeit, eine Variable zu verwenden, um einen bestimmten Parameter zu erhalten?
function f(){ i=1; echo "${!((i+1))}" ; }
f a b
Ausgang: bash: ${!((i+1))}: bad substitution
, der Ausgang ich will, ist b
Was ist die richtige Syntax?
Ich glaube nicht, dies ist das richtige Zitat aus dem Handbuch. Diese erweitern sich zu Arrays der * Variablennamen *, die mit * 'Präfix' * beginnen. Das richtige Zitat ist der vierte Absatz von [Parametererweiterung] (https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion), wobei '$ {! Prefix *}' and '$ {! prefix @}' werden eigentlich als Ausnahmen von der Regel erwähnt. –