Wie entsteht ein Bereich mit Schritt n in der bash? (generieren einer Sequenz von zahlen mit Schritten)
Dem Weg zur Iteration über einen Bereich in der bash ist
for i in {0..10}; do echo $i; done
Was wäre die syntax für die Iteration über die Sequenz mit einem Schritt? Sagen wir, ich möchte nur noch die Nummer im obigen Beispiel.
- Auch zahlen, multipliziere ich mit 2. 😛
- Multiplikation ist eher hässlich, muss ich sagen
- Ich denke, die Antwort unter Verwendung von Bash-4 sollte jetzt akzeptiert.
- Und sicherlich nun. 🙂
- Wäre ich nicht so sicher. OS X kommt immer noch mit 3.2, zum Beispiel. Ich würde sagen, die C-Stil-Schleife sollte akzeptiert werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich tun würde,
(obwohl natürlich
seq 0 2 10
wird die gleiche Ausgabe erzeugen, auf Ihre eigenen).Beachten Sie, dass
seq
ermöglicht floating-point-zahlen (z.B.seq .5 .25 3.5
), aber bash ist brace expansion erlaubt nur Ganzzahlen.Bash 4's brace-expansion ist eine Schritt-Funktion:
Egal ob Bash 2/3 (C-style for-Schleife, siehe Antworten oben) oder Bash 4, ich würde es vorziehen, nichts über die " seq " - Befehl.
i
, dann können Sie nichtfor {0..10..${i}}
.. es scheitert.echo 0{1..9..2}
Reinen Bash, ohne einen zusätzlichen Prozess: