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