Verhalten, das ich in bash nicht verstehe

8

Ich habe einen Ordner mit 3 Dummy-Dateien: ab0, ab1 und ab2.

%Vor%

Bis hierher glaube ich zu verstehen. Aber:

%Vor%

Ich habe ab* erwartet. Dies bedeutet, dass es ein Grundlegendes gibt, das ich nicht verstehe.

Ich habe nach einfachen und doppelten Anführungszeichen, Erweiterungen und mehr in bash Tutorials und Handbüchern gesucht, aber ich verstehe es noch nicht.

    
Diego Herranz 24.12.2013, 19:07
quelle

2 Antworten

7

Die Zeile $ echo $myvariable wird analysiert, indem zuerst der Inhalt von $myvariable in die Zeile eingefügt und dann die Zeile ausgeführt wird. Wenn die Zeile also von bash analysiert wird, sieht sie wie $ echo ab* aus.

Wenn Sie $ echo "$myvariable" , erhalten Sie das gewünschte Verhalten.

    
Andrey Mishchenko 24.12.2013, 19:12
quelle
2

BASH führt die Erweiterung während der Zuweisung nicht aus. Die Erweiterung wird ausgeführt, wenn Sie den Befehl echo ausführen. Bei beiden Anführungszeichen speichern Sie die rohe Zeichenfolge ab* in Ihrer Variablen. Um dieses Verhalten in Aktion zu sehen, verwenden Sie Anführungszeichen, wenn Sie auch echo :

%Vor%     
jprice 24.12.2013 19:15
quelle

Tags und Links