Andreas Pakulat <[EMAIL PROTECTED]>:
> On 30.06.06 16:29:46, Frank Terbeck wrote:
> > Andreas Pakulat <[EMAIL PROTECTED]>:
> > > 
> > > ls | grep "done$" | while read f...
> > 
> > Das ist ganz einfach nicht nötig.
> > Unter anderem sollte man sich sicher sein, das ls nicht als Alias
> > expandiert und dann Optionen wie '--color=always' oder '-F' verwendet.
> 
> --color=auto hatte ich, grad mal rausgenommen.

'auto' ist nicht gravierend, 'always' wäre gravierend, weil etwaige
Controlcodes mit ausgegeben würden, egal welches Ausgabemedium ls
erkennt.

> > > > Im übrigen sollte jede Shell mit sehr langen Listen in for Schleifen
> > > > klarkommen.
> > > 
> > > Also die Bash hier kommt mit 3700 Mails im monatl. d-u-g Ordner nicht
> > > zurecht wenn ich alle auflisten lasse (73 Zeichen pro Zeile)
> > 
> > Da würde mich aber interessieren, welches Kommando du da anwendest.
> 
> ls, 
> [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>alias ls=ls
> [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>which ls
> /bin/ls
> [EMAIL PROTECTED]:~/.Mail/debian-user-german.2006-05/cur>/bin/ls *morpheus*
> bash: /bin/ls: Die Argumentliste ist zu lang

Ja, an einen externen Befehl können Argumentlisten schnell mal zu lang
werden. Aber es ging ja hier um for-Schleifen.

> > Denn bei shellinternen Kommandos ist die Menge der Argumente lediglich
> > durch den zur Verfügung stehenden Speicher begrenzt.
> 
> Ich benutze kein bash-internes ls. Warum weiss ich nicht, ich hab
> diesbzgl. nichts verstellt.

Ich bin auch nicht sicher ob die bash ein internes ls hat. Das ist
aber auch nicht der Punkt. Wenn die Argumentliste zu lang wird, dann
kann man das triviale Kommando entweder in eine for-Schleife umwandeln
oder spezialisierte Programme wie xargs verwenden.

> > Ich habe gerade mal eine bash gestartet und eine for Schleife mit vier
> > Millionen Argumenten gestartet:
> > 
> > for i in $(seq 1 4000000) ; do echo $i ; done
> 
> for geht hier auch wunderbar.

Gut, und daher wird in deinem Anwendungsfall auch eine Schleife der
Art

for i in *morpheus* ; do ls $i ; done

funktionieren.

Gruss, Frank


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an