Sto leggendo " Bash Guide for Beginners ". Dice:
Se il primo carattere di
PARAMETERè un punto esclamativo, Bash usa il valore della variabile formata dal resto diPARAMETERcome nome della variabile; questa variabile viene quindi espansa e quel valore viene utilizzato nel resto della sostituzione, piuttosto che il valorePARAMETERstesso. Questo è noto come espansione indiretta.
L'esempio fornito è:
franky ~> echo ${!N*}
NNTPPORT NNTPSERVER NPX_PLUGIN_PATH
Non capisco bene qui:
il valore della variabile formata dal resto di
PARAMETER
Come PARAMETERè giusto !N*, allora
il resto di
PARAMETER
è solo N*. Come potrebbe questo formare una variabile? Bash ha cercato lì tutti i possibili comandi?