Ich lese " Bash Guide für Anfänger ". Es sagt:
Wenn das erste Zeichen von
PARAMETER
ein Ausrufezeichen ist, verwendet Bash den Wert der Variablen, die aus dem Rest von gebildet wird,PARAMETER
als Namen der Variablen. Diese Variable wird dann erweitert und dieser Wert wird im Rest der Substitution anstelle des Werts von sichPARAMETER
selbst verwendet. Dies wird als indirekte Expansion bezeichnet.
Das gegebene Beispiel ist:
franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH
Ich verstehe hier nicht ganz:
der Wert der Variablen, die aus dem Rest von gebildet wird
PARAMETER
Wie das PARAMETER
gerade ist !N*
, dann
der Rest von
PARAMETER
ist einfach N*
. Wie könnte dies eine Variable bilden? Hat Bash dort alle möglichen Befehle durchsucht?