Wenn Sie die Klammererweiterung in Bash verwenden, so etwas wie
echo {a,b,c}
wird
echo a b c
Gibt es eine Möglichkeit, es auf 3 separate Befehle zu erweitern, einen für jede Erweiterung?
Damit:
echo {a,b,c}
würde werden
echo a
echo b
echo c
file-{r,b,g}{m,n,o}{x,y.z}.foo
ist es besser, die Kurzform zu verwenden, als alle 27 Werte aufzulisten.for
funktioniert dafür, aber es wird noch mehreval git branch -d \{ branch-a, branch-b }\;
Basierend auf Mark Manns ausgewählter Antwort konnte ich dieses Beispiel weiter ableiten, was großartig funktioniert:
Wenn Sie mehrere Klammererweiterungen innerhalb einer Linie verwenden, hätte Marks ursprüngliches Beispiel jede Variation einzeln gedruckt. Stattdessen wollte ich seine Antwort verwenden, um mehrere Dateien zu verschieben / umzubenennen. Um sicherzustellen, dass die Ausgabe dem Format entspricht, das
mv
normalerweise erwartet wird (mv oldfilename newfilename
), habe ich das zweite Auftreten der Klammererweiterung vermieden, sodass sie erst nacheval
Ausführung des ersten Befehls ausgewertet wird .Da die obige Ausgabe wie erwartet angezeigt wurde, konnte ich den folgenden Befehl ausführen:
Vielen Dank an Mark für seine ursprüngliche Antwort. Bitte stimmen Sie seine Antwort ab, wenn Ihnen gefällt, was seine Antwort mir erlaubt hat :-)
quelle
quelle