2010-09-25 3 views

Antwort

4

Der Bereich Ausdrucksform der Klammer Erweiterung wird anstelle von seq in einer for Schleife verwendet:

for i in {1..100} 
do 
    something # 100 times 
done 
2

Zum Beispiel, machen Sie eine Sicherung aller Dateien in einem Verzeichnis:

for i in * ; do 
    cp "$i"{,.bak} 
done 
+0

Das kann unmöglich funktionieren. –

+0

Entschuldigung, verschoben {, .bak} außerhalb des zitierten Teils. war ein Tippfehler. – Benoit

+0

Ok, das macht mehr Sinn. Tatsächlich habe ich bis jetzt nicht erkannt, dass die Pfadkomponenten nicht existieren müssen. –

0

Sie es verwenden, wenn Sie gegen mehrere Möglichkeiten übereinstimmen soll. ZB

ls src/{Debug,Release}/*.o # List all .o files in the Debug and Release directories. 
2

In bash verwenden Sie geschweifte Klammer Erweiterung, wenn Sie einen Bereich erstellen möchten, zB

for r in {0..100}

for r in {0..10..2} #WITH Schritt von 2

for z in {a..z}

Statt externe Befehle verwenden wie seq 0 100. Außerdem kann die Klammererweiterung verwendet werden, um Dateitypen aufzulisten, z. B.

for file in *.{txt,jpg}.

Dies listet alle Dateien auf, die TXT- und JPG-Erweiterungen haben.