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 diPARAMETER
come nome della variabile; questa variabile viene quindi espansa e quel valore viene utilizzato nel resto della sostituzione, piuttosto che il valorePARAMETER
stesso. 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?