Что такое непрямая экспансия? Что означает $ {! Var *}?

Я читаю " Руководство по Bash для начинающих ". Он говорит:

Если первый символ ПАРАМЕТРА является восклицательным знаком, Bash использует значение переменной, образованное из остальной части ПАРАМЕТРА , в качестве имени переменной; затем эта переменная раскрывается, и это значение используется в оставшейся части замены, а не значение самого ПАРАМЕТР . Это известно как непрямое расширение.

Приведен следующий пример:

 franky ~> echo $ {! N *}
NNTPPORT NNTPSERVER NPX_PLUGIN_PATH

Я здесь не совсем понимаю:

значение переменной, сформированное из остальной части ПАРАМЕТРА

Поскольку ПАРАМЕТР просто ! N * ], то

остальная часть ПАРАМЕТРА

равна просто N * . Как это могло образовать переменную? Bash выполнил поиск по всем возможным командам?

70
задан Toby Speight 2 December 2016 в 09:48
поделиться