Inkrement-Schleife in der bash mit set Betrag
Ich weiß, wie zu tun eine Schleife in der bash, steigt jedes mal um eins, aber sagen, ich habe einen Bereich von 1 bis 773 und ich möchte die Ausgabe einer Auswahl aus einer Schleife, so dass ich zwei Variablen in jeder iteration. Die ersten 1 und der zweite wird sagen, 19. In der zweiten iteration die erste wäre 20 und die zweite 39.
Habe ich das Spiel mit so etwas wie:
for start in {1..773}
do
start=$(($start+20))
end=$(($start+20))
echo $start ##
echo $end
done
Gewünschte loop-Ausgang:
1. $start = 1 and $end = 19
2. $start = 20 and $end = 39
3. $start = 40 and $end = 59
etc
Aber es ist nicht richtig. Ich möchte diese Ausgabe von zwei Variablen in eine Reihe von Skripten, um R schneller laufen, wenn nicht bash (z.B. awk) - Lösungen sind einfacher, dann ist das auch cool, wenn eine einfache > senden Sie die Datei.
Dank!
Die Schleife ist nicht im Einklang mit der beginnt. 1 zu 20 (+19), dann wird 20 wird 40 (+20). Das ist nicht möglich, auf einer kontinuierlichen Schleife.
InformationsquelleAutor cianius | 2013-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, drucken Sie die Bereiche innerhalb 773, können Sie dies so tun
Ausgabe
InformationsquelleAutor thefourtheye
Ihre Voraussetzung, sind nicht vollkommen klar, aber Sie sind re-Verwendung von Variablen-Namen.
wenn ich dies tun:
ich etwas bekommen, die in etwa das gewünschte Ergebnis. beobachten Sie, wie ich umbenannt, der schleifenvariablen vom start-bis zum index.
PS: wenn Sie möchten, ändern Sie die Schrittweite (ein.k.ein. "Inkrement") in der Schleife, Mach es einfach so:
Diese erhöht werden, in Schritten von 2, würden Sie wollen, um eine 20 hier. Geben Sie
1, 21, 41, ...
als Wert. Sehen http://www.cyberciti.biz/faq/bash-for-loop/ für mehr details.bash
version zuerst. Unterstützung für{x..y..z}
wurde Hinzugefügt in der Version 4.0 (möglicherweise 4.1; die changelog erwähnt es nicht und ich habe nicht eine 4.0-Instanz zu überprüfen).InformationsquelleAutor mnagel
Könnten Sie
seq
BefehlDie Verwendung von
seq
ist:Danke @AbdullahAlMamun. Bearbeitet die Antwort.
InformationsquelleAutor ztik
Es sei denn, ich bin fehlt etwas, können Sie einfach tun:
AUSGABE:
InformationsquelleAutor anubhava
Dies ist ein Weg, es zu tun mit einer konsequenten Ausgänge:
Ausgabe:
Oder
Ausgabe:
Anderen:
Ausgabe:
Diese Weise können Sie zwei Variablen.
InformationsquelleAutor konsolebox
Niemand hat vorgeschlagen, eine
while
SchleifeProduziert
Natürlich die while-Schleife kann geschrieben werden als for-Schleife:
InformationsquelleAutor glenn jackman
Hier ist ein Weg, es zu tun:
Es ist im Grunde nur eine einfache for-Schleife.
InformationsquelleAutor pgl