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