Я читаю "Bash Guide for Beginners". В нем говорится:
Если первый символ
PARAMETERявляется восклицательным знаком, Bash использует значение переменной, сформированной из остальной частиPARAMETER, как имя переменной; эта переменная затем расширяется и это значение используется в остальной части подстановки, а не как значениеPARAMETER. Это называется косвенным расширением.
Приведенный пример:
franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH
Я не совсем понимаю здесь:
значение переменной, сформированной из остальной части
PARAMETER
Поскольку PARAMETER является просто !N*, тогда
остальная часть
PARAMETER
является просто N*. Как это могло образовать переменную? Выбрали ли Bash всю возможную команду?