Bash $ {! Variable}

8

Ich kratze mich am Kopf, kann die Bashreferenz nicht finden und darüber reden.

Im folgenden Code

%Vor%

Was macht die zweite Zeile? Was macht der! -Operator in diesem Fall?

    
Olivier Refalo 25.04.2012, 13:38
quelle

2 Antworten

6

Dies ist eine Kurzform für indirekte Verweise .

%Vor%

Die scheinbar ähnliche Konstruktion $ {! foo *} wird auf erweitert die Namen aller Variablen, deren Name mit foo beginnt:

%Vor%     
Anders Lindahl 25.04.2012, 13:47
quelle
1

Aus dem b Ash-Handbuch :

  

Wenn das erste Zeichen des Parameters ein Ausrufezeichen (!) ist, a   Ebene der variablen Indirektion wird eingeführt. Bash verwendet den Wert von   die Variable, die aus dem Rest des Parameters als der Name der   Variable; Diese Variable wird dann erweitert und dieser Wert wird in der verwendet   Rest der Substitution, und nicht der Wert des Parameters selbst.   Dies ist als indirekte Erweiterung bekannt. Die Ausnahmen davon sind die   Erweiterungen von $ {! prefix *} und $ {! name [@]} wie unten beschrieben.

    
Eugene Yarmash 25.04.2012 13:45
quelle

Tags und Links