linux-l: For-Schleifen

Jens Dreger jens.dreger at physik.fu-berlin.de
Fr Feb 11 02:53:07 CET 2000


On Fri, Feb 11, 2000 at 02:01:08AM +0100, Oliver Hillmann wrote:
> On Thu, 10 Feb 2000, Mario Thaten wrote:
> 
> > mal ne ganz blöde Frage (man bash und man builtins hilft mir bloß
> > nicht genug weiter):
> 
> Es gibt keine blöden Fragen, es gibt nur unpassende Kleidung... Oder so :)
>  
> > Kann ich eine for-Schleife in der Bash so schreiben, daß sie, wie
> > aus Programmier- & Skriptsprachen bekannt, der Laufvariablen z.B.
> > Werte von 1-25000 zuweist, ohne
> > "for i in 1 2 3 4 5..25000"
> 
> for i in `seq 1 25000`; do mach_was_mit $i; done
> 
> man seq ist Deine Freundin, und seq (wie Sequence) scheint ein GNU Shell
> Utility zu sein...

Verdammt ! Und ich wollte mit meinem range Programm doch noch reich
werden. Wieder nix...

seq ist doppelt so schnell wie mein Perl-Skript. So sieht das aus...

> Bei großen Werten braucht seq allerdings ein Momentchen (und Hölle viel
> Speicher) zum Erzeugen der entsprechenden Zahlenliste, aber bis 25000
> (wegen des Beispiels :) hab ich das erfolgreich getestet.

seq ist wohl unschuldig. Die bash speichert bloss die gesamte Ausgabe
von seq zwischen und startet dann erst die for-Schleife. 

Nach der ersten Freude musste ich leider feststellen, dass seq sowohl
auf den Alphas (OSF1) als auch auf den FreeBSD Maschinen hier nicht
vorhanden ist, obwohl der Grossteil der anderen shell-utils da
ist. Handelt es sich denn hier um ein sehr neues Softwareprodukt ?!?

Unentschlossem, ob ein Upgrade lohnt,

Jens.



Mehr Informationen über die Mailingliste linux-l