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