Кажется, есть исключение, когда данная «косвенность» заканчивается на *
, как здесь.В этом случае он дает все имена переменных, которые начинаются с указанной вами части (N
здесь).Bash может сделать это, потому что он отслеживает переменные и знает, какие из них существуют.
Истинное косвенное обращение таково:
Скажем, у меня переменная $VARIABLE
установлена на 42
, и у меня есть другая переменная $NAME
установите на VARIABLE
.${!NAME}
даст мне 42
.Вы используете значение одной переменной, чтобы сообщить вам имя другой:
$ NAME="VARIABLE"
$ VARIABLE=42
$ echo ${!NAME}
42